I’m using AIButton
in my app and I have a AsyncTask
which gets executed after AIButton is clicked and receives some command and AsyncTask sometimes
Use boolean cancel (boolean mayInterruptIfRunning).
Make the asyncTask a class variable.
AsyncTask translate_ = new translate();
Then call it like so in place.
translate_.execute(textToTranslate.getText().toString(), "az");
Within the button onclick cancel the asyncTask.
translate_.cancel(true);
Then check within your loop that the task has been cancelled and set a break.
for (int i=0; i
These questions also give some more variety in how to choose to do this:
Android - Cancel AsyncTask Forcefully
How to stop asynctask thread in android?
It would be wise to manage the task on backpress also. Perhaps cancel the task in the activity onpause.
public void listenButtonOnClick(final View view) {
// aiService.startListening();
// add more details in here
if (aiService != null) {
switch (currentState) {
case normal:
aiService.startListening();
break;
case busy:
aiService.cancel();
translate_.cancel(true);
break;
default:
aiService.stopListening();
translate_.cancel(true);
break;
}
Or cancel the task when the aiservice
is cancelled or stopped.
@Override
public void onListeningStarted() {}
@Override
public void onListeningCanceled() {
translate_.cancel(true);
}
@Override
public void onListeningFinished() {
translate_.cancel(true);
}
There's other ways it can be managed, explore your options. Have a good look at this and the SO questions linked above.
If you have a look at the docs.
apiai-android-client/ailib/src/main/java/ai/api/ui/AIButton.java
@Override
protected void onClick(final View v) {
super.onClick(v);
if (aiService != null) {
switch (currentState) {
case normal:
aiService.startListening();
break;
case busy:
aiService.cancel();
break;
default:
aiService.stopListening();
break;
}
}
}
It's clear from our discussion you're struggling with how to implement this.
Please study this apiai-android-client/ Android SDK for api.ai/ Tutorial
Go back to the basics. Forget about the ai.api
for a while and learn the basics. Browse around, read the docs Input Events read questions and apply the programming principles.
For example:
Android button onclick override
Beyond this I cannot help you any further.