2013-04-11 135 views
0

我有一个FragmentActivity。在其功能,我想区分微分主页按钮,按下后退按钮并启动新活动

  • 首页按钮被按下
  • 后退按钮按下
  • 启动一个新的活动(这将导致片段活动的被称为)

对于后退按钮案例,我知道我可以通过使用this.isFinishing() == true来区分它。

但是,如何启动新的活动案例

我知道也许我可以在启动新活动之前设置一个标志,并在函数结束时重置标志。但是,这对我来说听起来并不高雅。有没有更好更强大的方法?

+0

我认为,一个指针也可以处理'onStop()'。然而,如前所述,这个问题是不明确的 - 你真的想做什么?例如,“启动”包括切换到实际已终止然后由系统重新启动的后台任务吗? – 2013-04-11 03:06:21

+0

我认为你可以覆盖关键事件所以你可以确定家或按回车 – 2013-04-11 03:13:29

+0

你不能覆盖主键按下。 – Karakuri 2013-04-11 03:23:09

回答

0

您可以创建一个单例类,用于跟踪您的活动何时开始/恢复/暂停/停止。创建一个基类Activity类,它在每个生命周期回调中调用单例。

如果你看一下活动之间转换时的回调的顺序,你应该看到这一点:

Pause Activity A 
Create Activity B 
Start Activity B 
Resume Activity B 
Stop Activity A 

当你的单会从活动A的的onStop()调用,您可以检查是否有一个呼叫来自另一个Activity的onResume()(显然属于您的应用程序)。如果没有,则知道用户已更改应用程序或返回主屏幕。

至于后退按钮,您可以检查isFinishing(),或覆盖Activity.onBackPressed()并在那里做记录。