确定 onPause() 是由用户导航触发的还是由我的 activity 启动另一个导航触发的
Determine whether onPause() was fired by user navigation or by my activity launching another one
我如何确定 onPause()
被解雇是因为我的 activity 启动了一个新的(例如照片选择器意图)还是因为用户离开了我的 activity(例如按主页)?
一个简单的解决方案是在 Activity
中有一个具有一些固定值的 state
变量:
final static int RUNNING = 0;
final static int CALLED_SOMETHING = 1;
int state = RUNNING:
然后,每当您启动 activity:
state = CALLED_SOMETHING;
当它 returns:
state = RUNNING;
在你的onPause()
中:
switch(state) {
case RUNNING:
// Do the stuff if Home etc were pressed
break;
case CALLED_SOMETHING:
// Do the other stuff
break;
}
显然,您可以将其扩展到更多场景。您可能还希望抓住 onBackPressed()
以确保您尽可能多地了解情况。
我如何确定 onPause()
被解雇是因为我的 activity 启动了一个新的(例如照片选择器意图)还是因为用户离开了我的 activity(例如按主页)?
一个简单的解决方案是在 Activity
中有一个具有一些固定值的 state
变量:
final static int RUNNING = 0;
final static int CALLED_SOMETHING = 1;
int state = RUNNING:
然后,每当您启动 activity:
state = CALLED_SOMETHING;
当它 returns:
state = RUNNING;
在你的onPause()
中:
switch(state) {
case RUNNING:
// Do the stuff if Home etc were pressed
break;
case CALLED_SOMETHING:
// Do the other stuff
break;
}
显然,您可以将其扩展到更多场景。您可能还希望抓住 onBackPressed()
以确保您尽可能多地了解情况。