Activity 从后台启动或另一个 activity

Activity started from background or for another activity

我如何知道 Activity A 是否从 Intent:

开始
Intent intent = new Intent(this, Activity.class);
startActivity(intent);

或者由于activity生命周期(销毁后,activityA可以再次创建,如果在历史应用).

有什么方法可以区分这两种调用 Activity 的方法吗?

Intent Activity

上使用 PutExtras()

检查this or that or this-indirect-

当你的 Activity 被重新创建时,它是用不同的 Intent 创建的,而不是最初用来激发它的 Intent -(特别是从历史),所以如果你使用附加功能并检查你的 oncreate 你会更好 -(阅读这个关于不太间接 post)

所以如果我明白你想检查 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);
}