我正在开发2.2.2上的应用程序,并且当屏幕空白,用户按下“主页”等时需要采取某些操作。
大多数情况都很好:当屏幕空白时,调用onPause(),然后在空白上调用onResume(),如果按下home,则调用onPause(),onStop()等。
然而,对于主要活动来说,这一切都是正确的,它似乎不适用于从启动活动开始的次要活动。
屏幕空白/ unblank按预期工作,但是在'home'键上只调用onPause(),而不是onStop(),然后重新启动应用程序会导致onResume()。
也就是说,我无法区分这个辅助活动的屏幕空白和返回主屏幕之间的区别,我需要,原因是我需要在返回主页时执行某些操作,但不能在屏幕上执行空白。
我该怎么做才能找到答案?
答案 0 :(得分:0)
捕捉主页按钮事件无法完成,这是故意的,因此您将无法阻止它。
如果您坚持捕获它,则需要将您的应用设置为启动器,而不是简单的应用。
至于其他事件,你需要知道许多方法只会告诉你发生了什么但不是它们的触发器。
为此你必须自己解决这个问题。
例如,如果你去了另一个活动,你可以将它存储在一个标志中,表明你已经去了另一个活动。如果您需要知道您已从第二个活动返回到第一个活动,则应使用startActivityForResult开始第二个活动,然后您将检查结果(并在第二个活动上设置)。
如果您想避免切换活动,请考虑使用片段。
不过,您可能还想查看方法onWindowFocusChanged。答案 1 :(得分:0)
实际上,最好的方法是使用onUserLeaveHint()。当按下Home时,这会从辅助活动调用 - 至少在API级别8上。