区分按下主页按钮,按下后退按钮并启动新活动

时间:2013-04-11 02:41:16

标签: android

我有FragmentActivity。在onPause函数中,我想区分

  • 按下主页按钮
  • 按下后退按钮
  • 启动新活动(这将导致片段活动的onPause被调用)

对于后退按钮按下的情况,我知道我可以使用this.isFinishing() == true来区分它。

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

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

1 个答案:

答案 0 :(得分:0)

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

如果您在活动之间转换时查看回调的顺序,您应该看到:

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

当您从活动A的onStop()调用您的单身人士时,您可以检查来自另一个活动(明显属于您的应用)的onResume()是否有来电。如果没有,您知道用户已更改应用程序或返回主屏幕。

关于后退按钮,您可以查看isFinishing(),或覆盖Activity.onBackPressed()并在那里进行簿记。