如何检查用户是否真正启动了 android 应用程序,而不只是返回到 activity?

How to check if user actually started the android app, not just returned to the activity?

如何区分在实际启动 应用程序或切换已启动应用程序的活动和类似操作(如返回 在应用程序未关闭时添加到应用程序)? 我已经尝试检查 savedInstanceState!=null,但它只适用于屏幕旋转,而不是从这个应用程序或另一个应用程序的另一个 activity 返回到 activity。我还尝试 get/set onRestoreInstanceState() 和 onSaveInstanceState() 中的一个特殊变量,但这不是上述情况的解决方案。

如何实现这个检查?

在这种情况下,您可以做的是让您的 "default" 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>
static boolean isFirstRun = true;

public void onCreate(...) {
    if (isFirstRun) {
        // do stuff
        isFirstRun = false;
    }
}

你试过这样做吗?