如果任务在onStop()中花费很长时间会发生什么

时间:2017-07-02 05:59:41

标签: android

考虑我想在我的应用程序的onStop()方法中保存数据库中的一些数据,并使用AsyncTask执行查询,或执行需要很长时间才能执行的任何类型的任务,那么会发生什么?活动是否等待完成任务?我的任务将正确完成?

p.s:我想这样做(在onStop()中保存数据),因为我不希望每次用户点击按钮并更改某些内容时执行查询,我想在最后执行此操作。 提前致谢 。

2 个答案:

答案 0 :(得分:0)

在onStop中启动的AsyncTask将运行完成。不应该有任何问题。如果它需要很长时间才能在完成之前重新启动,这可能会导致程序出现问题,具体取决于您的编码方式。

如果onStop功能本身耗时太长,你可能会绊倒看门狗计时器,你的应用程序可能会被杀死。

答案 1 :(得分:0)

首先确保asynctasks完成运行。但是你应该注意它们可以与UI同步工作,你可以修改asynchTask(onProgressSubmit(),onComplete()...的回调中的一些ui元素,但是如果你的UI线程不可用于这些回调你可能会遇到异常。

在API上停止方法之前的旧API中的一些罕见情况(低内存)中的第二个可能不会被调用,因此最好将数据保存在另一个回调中,例如(暂停时)。