Android 从后台启动的活动或其他活动的活动

Android 从后台启动的活动或其他活动的活动,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,我如何知道某项活动A是否是从意图开始的 Intent intent = new Intent(this, Activity.class); startActivity(intent); 或者由于活动生命周期(销毁后,如果在历史应用程序上,可以再次创建活动A) 有没有办法区分这两种调用活动的方式 在意图活动中使用PutExtras() 检查或检查此间接- 当你的活动被重新创建时,它是以不同的意图创建的,而不是最初用来触发它的意图(特别是从历史记录中),因此如果你使用额外的内容并在oncreate

我如何知道某项活动A是否是从意图开始的

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