Androidasynchronous任务取消/停止

我想知道什么是停止运行asynchronous任务的最佳方法。

我努力了

@Override protected void onCancelled() { super.onCancelled(); mTask.cancel(true); } 

我也试过了

 asyncTaskObject.cancel(true); 

这与特定的事件有关。

但假设情况是—有4个AsyncTask。 先拨打第二个,第二个拨打第三个和第三个电话第四个。 当用户input活动时,没有对话框。 否则,我们可以在那里使用onCancel方法。 当用户点击页面上的任何地方时,如果用户没有点击任何地方,则出现对话框,则不显示对话框,但asynchronous任务继续在后台运行。假设用户点击“后退”button或导航图标到家页面user.is被取出当前活动。 但asynchronous任务继续在后台运行,最终导致应用程序崩溃。 我已经习惯了onBackPressed中的cancel方法。 但问题是你不能确定哪个任务正在运行,应用程序再次运行。

有什么办法呢?

  • Android:NoClassDefFoundError android.os.AsyncTask
  • Asynctask:将两个或多个值从doInBackground传递给onPostExecute
  • AsyncTask Android - 设计模式和返回值
  • IntentService类没有在主ui线程上运行AsyncTask。 必须从主线程调用方法execute,当前推断的线程是worker
  • 如何从Android中的PostExecute正确启动活动?
  • “doInBackground(URL ... urls)”中的三个点是什么意思?
  • AsyncTask返回值
  • 我可以将不同types的parameter passing给Android中的AsyncTask吗?
  • 继续引用AsyncTask对象作为实例variables,然后在onDestroy()中执行此操作

     @Override protected void onDestroy() { if (mTask != null) { mTask.cancel(true); } super.onDestroy(); } 

    我不完全确定你什么时候要取消你的任务,但是这里有几点build议:a)保存每个正在运行的任务的参考。 b)在你的对话框中添加一个dismiss监听器,并取消所有的任务(如果这是你想要做的)。 c)取消你的活动onStopcallback的所有任务(如果这是你想要做的事情)。