确定onPause()是由用户导航还是由我的活动启动另一个

时间:2015-05-12 06:27:36

标签: java android onpause

如何判断onPause()是因为我的活动是否已启动新活动(例如照片选择器意图),还是因为用户离开了我的活动(例如,通过按回家)?

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是state中的Activity变量带有一些固定值:

final static int RUNNING = 0;
final static int CALLED_SOMETHING = 1;

int state = RUNNING:

然后,每当您启动活动时:

state = CALLED_SOMETHING;

当它返回时:

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()以确保尽可能多地了解情况。