如何区分应用程序的实际启动上的onCreate()调用或已启动应用程序和类似操作的切换活动(例如将返回)没有关闭)? 我已经尝试检查savedInstanceState!= null,但它只适用于屏幕旋转,而不是从此应用或其他应用的其他活动返回活动。我还尝试在onRestoreInstanceState()和onSaveInstanceState()中获取/设置一个特殊变量,但它不是描述案例的解决方案。
如何实施此检查?
答案 0 :(得分:1)
static boolean isFirstRun = true;
public void onCreate(...) {
if (isFirstRun) {
// do stuff
isFirstRun = false;
}
}
您是否尝试过这样的事情?
答案 1 :(得分:0)
在这种情况下你可以做的是,使你的"默认" Activity
基本的启动器样式Activity
。其唯一目的是启动您的主Activity
。当启动器启动主Activity
时,它可以通过Bundle
传递该事实。
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("first_start", true);
startActivity(intent);
启动器Activity
在XML中定义为noHistory。这样,它只会在第一次启动应用程序时打开。
<activity
android:name=".LauncherActivity"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>