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方法。 但问题是你不能确定哪个任务正在运行,应用程序再次运行。

有什么办法呢?

Solutions Collecting From Web of "Androidasynchronous任务取消/停止"

继续引用AsyncTask对象作为实例variables,然后在onDestroy()中执行此操作

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

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