可能重复:
Android: Detect when another Activity is launched (or your activity loses focus)
我需要能够判断Activity.onStop()是否被调用,因为我的应用程序正在转移到新活动,或者是否因为用户按下“Home”键或从底部点击后退按钮而关闭了它。活动堆栈。
原因是因为我需要知道何时关闭我的应用程序中播放的音乐(游戏)。没有什么比回家和在后台播放音乐更烦人了。
但是,为每个活动更改调用Activity.OnStop(),并且我不想在我的应用程序中的多个活动之间移动时暂停音乐。我找不到区分回家和参加内部活动的方法。
我是否可能陷入错误的事件中?
有什么建议吗?
答案 0 :(得分:2)
没有onClose()
。有onPause()
,onStop()
和onDestroy()
,但没有onClose()
。您可以拨打isFinishing()
来查看活动是否因为后退按钮(或finish()
来电)而暂停。 isFinishing()
如果活动将停留在false
,则会返回{{1}}(例如,用户按下HOME,用户会接听电话)。
答案 1 :(得分:0)
我猜你可以添加一个View.OnKeyListener
来抓住Home键的public boolean onKey(View v, int keyCode, KeyEvent event){}
,关闭音乐并返回false
,告诉事件没有被消耗掉。
答案 2 :(得分:0)
你不是在另一个帖子中问同样的问题吗?看到我的答案,您可以使用该库或将该方法用于您自己的代码,它在AC2下获得许可。