activity
将显示取消游戏的窗口是/否。
如果我按是,我会通过finish()
返回我的MainActivity
。
我的问题是,我无法再次启动游戏,因为我的Asynctask没有完成。我首先必须在“最近使用的应用程序”中杀死该应用程序。
答案 0 :(得分:2)
您需要取消活动AsyncTask
中的onStop
。
答案 1 :(得分:1)
您可以参考此link取消异步任务
答案 2 :(得分:1)
您需要实现两件事来停止执行AsyncTask:
1.从你想要停止执行的地方调用AsyncTask的Cancel()方法。这可以在您的活动的onStop()
中,如下所示:
asyncTask.cancel(true);
2.现在,您必须在doInBackground方法中使用isCancelled方法检查是否取消了AsyncTask。
protected Object doInBackground(Object... x) {
while (/* condition */)
{
...
if (isCancelled())
break;
}
return null;
}
为什么呢?由于以下来自AsyncTask的Android文档的描述:
取消任务
可以随时通过调用取消任务 取消(布尔值)。调用此方法将导致后续调用 isCancelled()返回true。调用此方法后, onCancelled(Object),而不是onPostExecute(Object)将被调用 在doInBackground(Object [])返回之后。确保完成任务 尽快取消,你应该经常检查退货 ifCancelled()的值定期来自doInBackground(Object []),if 可能的(例如在循环内)。
答案 3 :(得分:1)
我建议使用surface来编写实际游戏部分而不是活动,这可能会帮助你解决这个问题。
答案 4 :(得分:0)
在要处理的代码中单击
1>常用。