Android:如何调用Activity.onStop(),因为用户将返回主页?

时间:2009-12-03 06:34:43

标签: java android

  

可能重复:
  Android: Detect when another Activity is launched (or your activity loses focus)

我需要能够判断Activity.onStop()是否被调用,因为我的应用程序正在转移到新活动,或者是否因为用户按下“Home”键或从底部点击后退按钮而关闭了它。活动堆栈。

原因是因为我需要知道何时关闭我的应用程序中播放的音乐(游戏)。没有什么比回家和在后台播放音乐更烦人了。

但是,为每个活动更改调用Activity.OnStop(),并且我不想在我的应用程序中的多个活动之间移动时暂停音乐。我找不到区分回家和参加内部活动的方法。

我是否可能陷入错误的事件中?

有什么建议吗?

3 个答案:

答案 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下获得许可。