考虑我想在我的应用程序的onStop()方法中保存数据库中的一些数据,并使用AsyncTask执行查询,或执行需要很长时间才能执行的任何类型的任务,那么会发生什么?活动是否等待完成任务?我的任务将正确完成?
p.s:我想这样做(在onStop()中保存数据),因为我不希望每次用户点击按钮并更改某些内容时执行查询,我想在最后执行此操作。 提前致谢 。
答案 0 :(得分:0)
在onStop中启动的AsyncTask将运行完成。不应该有任何问题。如果它需要很长时间才能在完成之前重新启动,这可能会导致程序出现问题,具体取决于您的编码方式。
如果onStop功能本身耗时太长,你可能会绊倒看门狗计时器,你的应用程序可能会被杀死。
答案 1 :(得分:0)
首先确保asynctasks完成运行。但是你应该注意它们可以与UI同步工作,你可以修改asynchTask(onProgressSubmit(),onComplete()...的回调中的一些ui元素,但是如果你的UI线程不可用于这些回调你可能会遇到异常。
在API上停止方法之前的旧API中的一些罕见情况(低内存)中的第二个可能不会被调用,因此最好将数据保存在另一个回调中,例如(暂停时)。