我想在我的Android应用程序恢复焦点或启动时收到通知。棘手的部分是,我不关心在应用程序中切换活动时出现的事件。我感兴趣的活动是:
我尝试使用onStart()
和onResume()
方法处理它,但是每次加载Activity
时它们都会触发并调用onStop,即使它们只是在应用内切换活动
我检查了生命周期(http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle),但是当只在应用程序中切换活动时,甚至会调用onDestroy()
。
答案 0 :(得分:0)
您必须覆盖Application
的{{1}}课程,每次打开应用时都会调用一次。
答案 1 :(得分:0)
我想到了两种可能的解决方案,它们都不是很干净。
1)使用计时器
每次使用onPause()
方法时,您都会安排一个计时器,在1秒后设置一个标志(或更长的时间,取决于您的确切用例)。在每个onResume()
中,检查是否已设置标记,例如您的应用程序处于非活动状态的时间超过计时器间隔。如果设置了标记,则表示用户在onPause()
和onResume()
2)手动设置标记
每次在应用程序中的Activities
之间触发切换时,都会在应用程序的某处设置标记。在onResume()
方法中,检查是否设置了标记,例如交换机是由您的应用程序触发的。如果未设置,则用户来自您的应用程序外部。
然而,这两种方法都不能在可能的用例之间进一步区分。所有这些案例对你来说都是一样的:
这可能会导致您的应用程序出现意外行为。我不知道你究竟想要使用这种机制,但是你必须非常认真考虑所有可能的情况,如果你想让它们触发你的行为,那么。