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);
}
我如何知道 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);
}