我有一个FragmentActivity
. 在其onPause
功能范围内,我想区分
- 按下主页按钮
- 按下返回按钮
- 启动一个新活动(这将导致片段活动
onPause
被调用)
对于按下后退按钮的情况,我知道我可以通过使用来区分它this.isFinishing() == true
。
但是,启动一个新的活动案例怎么样?
我知道也许我可以在启动新活动之前设置一个标志,并在onPause
功能结束时重置标志。但是,这对我来说听起来并不优雅。有没有更好更健壮的方法?
我有一个FragmentActivity
. 在其onPause
功能范围内,我想区分
onPause
被调用)对于按下后退按钮的情况,我知道我可以通过使用来区分它this.isFinishing() == true
。
但是,启动一个新的活动案例怎么样?
我知道也许我可以在启动新活动之前设置一个标志,并在onPause
功能结束时重置标志。但是,这对我来说听起来并不优雅。有没有更好更健壮的方法?
您可以创建一个单例类来跟踪您的活动何时开始/恢复/暂停/停止。创建一个基 Activity 类,在其每个生命周期回调中调用单例。
如果您在活动之间转换时查看回调的顺序,您应该会看到:
Pause Activity A
Create Activity B
Start Activity B
Resume Activity B
Stop Activity A
当您的单例从 Activity A 的 onStop() 调用时,您可以检查是否有来自另一个 Activity(显然属于您的应用程序)的 onResume() 调用。如果没有,您就知道用户已更改应用程序或返回主屏幕。
至于后退按钮按下,您可以检查isFinishing()
,或覆盖Activity.onBackPressed()
并在那里做你的簿记。