【发布时间】:2014-12-20 08:52:42
【问题描述】:
应用程序关闭后如何完成我的 TimerTask?垃圾收集器无法正常工作或只是不想完成任何后台任务或线程。
【问题讨论】:
-
定义
app was closing...
应用程序关闭后如何完成我的 TimerTask?垃圾收集器无法正常工作或只是不想完成任何后台任务或线程。
【问题讨论】:
app was closing ...
假设你想在 Activity 被销毁时停止它:
@Override
protected void onDestroy()
{
super.onDestroy();
yourTimer.cancel();
}
或者如果你想在你的活动被隐藏时停止它:
@Override
protected void onStop()
{
super.onStop();
yourTimer.cancel();
}
根据活动工作流程,选择必须取消计时器的最佳方法:
【讨论】:
您应该在 Activity 的 onDestroy() 中停止任何线程/任务。顺便说一句,你不应该在 Android 中使用 TimerTask。检查这个 SO 问题:TimerTask vs Thread.sleep vs Handler postDelayed - most accurate to call function every N milliseconds?
为了更新数据,您可以在服务中执行此操作(您应该这样做,而不是活动)。
【讨论】: