相关疑难解决方法(0)

如何在Android中完全杀死/删除/删除/停止AsyncTask

我制作了一个从我们的服务器上下载视频的应用.问题是:

当我取消下载时,我打电话:

myAsyncTask.cancel(true)
Run Code Online (Sandbox Code Playgroud)

我注意到,这myAsyncTask不会停止呼叫取消...我ProgressDialog仍然上升,就像从状态跳到状态显示我每次取消并再次启动时AsyncTask通过单击下载按钮,新的AsyncTask启动...每个时间我点击下载..然后取消,然后再次单独下载AsyncTask启动.

为什么myAsynTask.cancle(true)不取消我的任务?我不再想要它了.如果我点击取消,我只想完全关闭它.

怎么做 ?

编辑:

感谢gtumca-MAC,以及帮助我​​的其他人做到了:

while (((count = input.read(data)) != -1) && (this.isCancelled()==false)) 
{
    total += count;
    publishProgress((int) (total * 100 / lenghtOfFile));
    output.write(data, 0, count);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!!!

android android-asynctask

26
推荐指数
2
解决办法
6万
查看次数

Android Async任务取消/停止

我想知道停止异步任务运行的最佳方法是什么.

我试过了

@Override protected void onCancelled() { 
      super.onCancelled(); 
      mTask.cancel(true);       
 }
Run Code Online (Sandbox Code Playgroud)

我也试过了

asyncTaskObject.cancel(true);
Run Code Online (Sandbox Code Playgroud)

这在与事件相关联时特别有用.

但假设场景是---有4个AsyncTask.首先调用第二个,第二个调用第三个和第三个调用第四个.当用户输入活动时,没有对话框.否则我们可以在那里使用onCancel方法.当用户点击页面上的任何位置时,如果用户没有单击任何地方,则会出现对话框,但没有显示对话框,但异步任务在后台继续运行.假设用户单击"返回"按钮或导航图标到主页页面user.is取出当前活动.但异步任务继续在后台运行,最终应用程序崩溃.我已经习惯了onBackPressed中的cancel方法.但问题是你不能确定哪个任务正在运行,应用程序再次运行.

这是怎么回事?

events android android-asynctask

12
推荐指数
1
解决办法
1万
查看次数

API.AI:如何在点击AIButton时停止AsyncTask?

我正在AIButton我的应用程序中使用,我有一个AsyncTask在AIButton被点击后执行并接收一些命令并且AsyncTask有时需要太长时间才能执行.

这是我的代码:

final AIConfiguration config = new AIConfiguration("xxx",
                AIConfiguration.SupportedLanguages.English,
                AIConfiguration.RecognitionEngine.System);

listenButton = (AIButton) findViewById(R.id.micButton);

config.setRecognizerStartSound(getResources().openRawResourceFd(R.raw.test_start));
config.setRecognizerStopSound(getResources().openRawResourceFd(R.raw.test_stop));
config.setRecognizerCancelSound(getResources().openRawResourceFd(R.raw.test_cancel));

listenButton.initialize(config);
listenButton.setResultsListener(this);
Run Code Online (Sandbox Code Playgroud)

这是AsnycTask:

class translate extends AsyncTask<String, Void, String> {

    String translatedText = "";

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        loading.setMessage("Loading");
        loading.show();
    }

    @Override
    protected String doInBackground(String... params) {

        String text = params[0];
        String toBeConvertedIn = params[1];

        Log.d("TEXT", text);
        Log.d("TBCI", toBeConvertedIn);

        try {
            String encodedText = URLEncoder.encode(text, "UTF-8");
            HttpHandler httpHandler = new HttpHandler();
            String url = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=xxxxxxx&text=" …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask onclicklistener api-ai

6
推荐指数
1
解决办法
382
查看次数