我的应用程序是一组活动,我没有子应用程序。有一个静态单例类,它运行一个循环计时器(java.util.Timer)。当用户离开我的应用程序时,该计时器需要暂停。
如果只有一个活动,我可以暂停并恢复MainActivity的onPause()和onResume()的计时器。在我的情况下,我该如何解决这个问题?
答案 0 :(得分:4)
创建BaseActivity
并暂停并恢复onPause
和onResume
中的计时器。然后从BaseActivity
。
答案 1 :(得分:2)
如果你有这个静态singelton,你可以通过每个Activity的onPause()
和onResume()
来打电话。
将调用放入Activity的子类中以减少代码重复。 在所有活动中扩展这个新的子类。
答案 2 :(得分:1)
如果您的所有活动在应用程序中保持打开状态,您可以使用此功能,如果应用程序已关闭,则会在onPause()
中调用isFinishing() @Override
public void onPause() {
if(isFinishing()){
//code to finish() all activitys threads etc.....
}
super.onPause();
}
答案 3 :(得分:1)
我发现onDestroy
和onCreate
被恰当地调用,因此我将其覆盖。
覆盖所有活动的onPause
和onStart
会很麻烦,因为每次启动新活动时计时器都会暂停并恢复。
答案 4 :(得分:-1)
你可以做多件事:
什么都不做,当用户离开你的应用程序停止的所有活动时,你的所有对象,甚至静态单例都将从内存中释放。
通过此单例跟踪活动活动,当没有人处于活动状态时暂停计时器。