Java 整个应用程序是否有onPause?

Java 整个应用程序是否有onPause?,java,android,timer,lifecycle,onpause,Java,Android,Timer,Lifecycle,Onpause,我的应用程序是一组活动,我没有将应用程序子类化。有一个静态的单例类运行一个循环计时器(java.util.timer)。当用户离开我的应用程序时,计时器需要暂停 如果只有一个活动,我可以暂停并恢复MainActivity的计时器onPause()和onResume()。在我的情况下,我应该如何解决这个问题?如果你有这个静态Singleton,你可以通过onPause()和onResume()调用每个活动 将调用放入Activity的子类中以减少代码重复。 在您的所有活动中扩展此新子类。如果您的所

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


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

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

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

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


创建
BaseActivity
并在
onPause
onResume
中暂停和恢复计时器。然后从
BaseActivity

派生所有其他活动。您可以执行多项操作:

  • 什么都不做,当用户离开所有活动时,你的应用程序将停止,你的所有对象,甚至静态单例也将从内存中释放

  • 通过此单例跟踪活动,当无人活动时,暂停计时器


  • 我发现
    onDestroy
    onCreate
    被恰当地调用,所以我对它们进行了重写


    覆盖所有活动的
    onPause
    onStart
    会很麻烦,因为每次启动新活动时计时器都会暂停并恢复。

    然后我必须在每个活动中实现onPause()和onResume(),这感觉不是一个好的设计。你可以把它放到一个子类中,并从新的子类扩展每个活动。1。在我的测试中,计时器一直在运行。我只启动MainActivity,然后使用“后退”按钮离开它。我一直在LogCat中看到调试消息。通过设置->应用程序停止应用程序。如果您有一个活动(A1)并启动另一个活动A2,则:A1_暂停、A2_创建/启动/恢复、A1_停止。所以,如果您不想在每次启动新活动时启动/停止计时器,您应该添加一些额外的逻辑。
     @Override 
    public void onPause() {        
    
            if(isFinishing()){
    //code to finish() all activitys threads etc.....
    }            
    
        super.onPause();
    }