有没有办法知道某个活动的onresume是否因为“后退按钮”或因为内装应用程序在后台而被调用? 我必须记录下这个不同的动作:/ 这是场景: 我有4个活动A-B-C-D;我需要登录活动之间的导航,我不希望记录从背景:)造成应用清醒过来的onResume记录恢复活动的原因
0
A
回答
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();
}
并备份到活动答:
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");
}
}
}
注:内如果和变量不是必需的,因为你已经知道你的结果是来自哪个活动,但是,我认为y你可能想在这个回报中传递一些数据,所以我离开了。
编辑图像举例说明ActivityForResult
0
例如你可以重写onBackPressed()
回调
@Override
public void onBackPressed() {
super.onBackPressed();
/* add your log here */
}
从onResume()
收集日志加上来自onBackPressed()
的一个(如果有的话),那么你可以检测到各种情况。
+0
我有4个活动A-B-C-D;我需要记录活动之间的导航,我不想记录应用程序从后台唤醒导致的onresume :) – aeroxr1
1
当Activity
暂停时,onPause()
被调用。在onPause()
中,将正在暂停的Activity
的名称写入全局变量static
。
当Activity
恢复时,调用onResume()
。在onResume
检查全局变量static
是否包含此名称Activity
。如果是这样,您可以省略日志,因为此Activity
刚刚暂停/恢复。
相关问题
- 1. 在Android中,如何检测我的活动恢复原因?
- 2. 恢复删除的记录
- 3. Android的恢复活动
- 4. 恢复的Android活动
- 5. ActiveRecord恢复关联记录
- 6. 恢复记录被释放
- 7. 写活动记录的复杂查询
- 8. 活动中环 - 未恢复
- 9. 如何恢复活动?
- 10. 正确恢复活动
- 11. 无法恢复活动
- 12. 如何恢复活动div
- 13. onResume()仅当恢复活动
- 14. 从活动恢复IntentService
- 15. 恢复到主要活动
- 16. Google地图:如何在恢复地图活动时恢复标记
- 17. 活动记录复杂关系查询
- 18. 防止多个活动记录进程插入重复记录
- 19. MySQL来笨活动记录,以删除重复记录
- 20. 在CMS中恢复丢失的记录
- 21. 记录总数及其原因SQL Server
- 22. 原因在活动栏标签中的活动
- 23. 在不重新启动活动的情况下恢复活动
- 24. WiX:数据库恢复不恢复表和记录
- 25. Android - 如何恢复以前的活动?
- 26. 如何恢复最近的活动?
- 27. 了java.lang.RuntimeException:无法恢复活动的Android
- 28. Android - 恢复上次查看的活动
- 29. 暂停/恢复ActivityGroup的子活动?
- 30. 如何恢复已暂停的活动
以这种方式,我只写日志,如果在后退按下事件发生?例如:使用这种方法的A-B-C-B如果用户在不返回A的情况下关闭应用程序,我将仅写入B? – aeroxr1
这样,您可以在'onActivityResult'内部登录,因此只有在意图具有ActivityResult时才会调度代码,当您关闭APP时,这种情况不会发生。您可以创建其他变量(如ActivityBID)来识别结果来自的活动。 –
但是在你的代码中只有当用户按下后退按钮时才调用setresult? – aeroxr1