Android 从后台启动的活动或其他活动的活动
我如何知道某项活动A是否是从意图开始的Android 从后台启动的活动或其他活动的活动,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,我如何知道某项活动A是否是从意图开始的 Intent intent = new Intent(this, Activity.class); startActivity(intent); 或者由于活动生命周期(销毁后,如果在历史应用程序上,可以再次创建活动A) 有没有办法区分这两种调用活动的方式 在意图活动中使用PutExtras() 检查或检查此间接- 当你的活动被重新创建时,它是以不同的意图创建的,而不是最初用来触发它的意图(特别是从历史记录中),因此如果你使用额外的内容并在oncreate
Intent intent = new Intent(this, Activity.class);
startActivity(intent);
或者由于活动生命周期(销毁后,如果在历史应用程序上,可以再次创建活动A)
有没有办法区分这两种调用活动的方式
在
意图活动中使用PutExtras()
检查或检查此间接-
当你的活动
被重新创建时,它是以不同的意图
创建的,而不是最初用来触发它的意图
(特别是从历史记录中),因此如果你使用额外的内容并在oncreate中签入,你会更好-(阅读这篇关于不太多间接帖子的文章)在意图活动中使用PutExtras()
检查或检查此间接-
当你的活动
被重新创建时,它是以不同的意图
创建的,而不是最初用来触发它的意图
(特别是从历史记录中),因此如果你使用额外的内容并在oncreate中签入,你会更好-(阅读这篇关于不太多间接帖子的文章)如果我明白了,你想检查一下onCreate
是否被再次调用。您可以通过使用以下逻辑来实现这一点:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedIntanceState != null && savedIntanceState.getBooleanExtra("FIRST_RUN", false)){
//not a first run
}
}
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean("FIRST_RUN", true);
super.onSaveInstanceState(outState);
}
所以,如果我明白了,您想检查一下是否再次调用onCreate
。您可以通过使用以下逻辑来实现这一点:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedIntanceState != null && savedIntanceState.getBooleanExtra("FIRST_RUN", false)){
//not a first run
}
}
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean("FIRST_RUN", true);
super.onSaveInstanceState(outState);
}
这种使用putExtras(.)
的方法更适用于这种情况,因为Intent
来自Activity
的mExtras
不能失去它的mExtras。这种使用putExtras(.)
的方法更适用于这种情况,b因为Intent
来自活动
不能失去它的mExtras
。