有没有办法知道是否因为“后退按钮”而调用了活动的onresume,或者因为intire应用程序是在后台调用了吗? 我必须记录这些不同的动作:/ 这是场景: 我有4个活动A-B-C-D;我需要记录活动之间的导航,我不想记录应用程序从后台唤醒导致的onresume:)
答案 0 :(得分:1)
从活动A开始,当您开始活动B / C / D时,使用和标识符并开始活动以获得结果。
例如:
int ActivityBID = 1;
Intent i = new Intent(this, ActivityB.class);
startActivityForResult(i, ActivityBID );
在您的活动B中,您可以覆盖onBackPressed
:
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("activity","B")
setResult(RESULT_OK, intent);
finish();
}
支持活动A:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ActivityBID ) {
if(resultCode == RESULT_OK){
String stredittext=data.getStringExtra("activity");
}
}
}
注意:内部if和变量不是必需的,因为你已经知道你得到了什么样的活动,但是,我想你可能想要在这个回报中传递一些数据,所以我离开了。
修改图片举例说明了ActivityForResult
答案 1 :(得分:1)
暂停Activity
时,会调用onPause()
。在onPause()
中,将正在暂停的Activity
的名称写入全局static
变量。
恢复Activity
时,会调用onResume()
。在onResume
中检查全局static
变量是否包含此Activity
的名称。如果是,则可以省略日志,因为此Activity
只是暂停/恢复。
答案 2 :(得分:0)
例如,您可以覆盖onBackPressed()
回调
@Override
public void onBackPressed() {
super.onBackPressed();
/* add your log here */
}
收集来自onResume()
的日志以及来自onBackPressed()
的日志(如果有),您可以检测各种情况。