2

我的应用程序是一组活动,我没有子类化应用程序。有一个静态单例类运行循环计时器 (java.util.Timer)。当用户离开我的应用程序时,需要暂停该计时器。

如果只有一个活动,我可以暂停和恢复 MainActivity 的计时器 onPause() 和 onResume()。在我的情况下,我应该如何解决这个问题?

4

5 回答 5

4

在和中创建BaseActivity和暂停和恢复计时器。然后从中派生所有其他活动。onPauseonResumeBaseActivity

于 2013-09-03T11:44:59.650 回答
2

如果你有这个静态单例,你可以通过onPause()每个onResume()活动调用。

将调用放入 Activity 的子类中以减少代码重复。在您的所有活动中扩展这个新的子类。

于 2013-09-03T11:44:36.927 回答
1

如果您的所有活动在应用程序中保持打开状态,您可以使用它,如果应用程序关闭,isFinishing() 将在您的 onPause() 中调用

 @Override 
public void onPause() {        

        if(isFinishing()){
//code to finish() all activitys threads etc.....
}            

    super.onPause();
}
于 2013-09-03T11:44:52.260 回答
1

我发现onDestroy并被onCreate适当地调用,所以我覆盖了那些。

覆盖所有活动会很麻烦onPauseonStart因为每次启动新活动时都会暂停和恢复计时器。

于 2013-09-03T12:41:27.173 回答
-1

你可以做很多事情:

  1. 什么都不做,当用户离开所有活动时,您的应用程序将停止并且您的所有对象,即使是静态单例也会从内存中释放。

  2. 通过这个单例跟踪活动活动,当没有人活动时暂停计时器。

于 2013-09-03T11:45:13.243 回答