Java 如何在首次打开Android应用程序时运行一次活动

Java 如何在首次打开Android应用程序时运行一次活动,java,android,Java,Android,我有一个音乐流应用程序,既有免费功能,也有付费功能。主活动提供了登录/订阅或免费试用的选项。如果用户选择“登录/订阅”,则他们将进入登录屏幕,在那里他们可以登录或创建帐户。但是,如果用户选择“免费试用”,则会将其带到功能有限的库屏幕。现在的情况是,如果他们选择“免费试用”,那么每次打开应用程序时,都会要求他们再次登录或免费试用 我想改变这一点,这样,一旦他们选择“免费试用”选项,他们就再也看不到这些选项,而是带到功能有限的库屏幕 因此,我将HomeActivity设置为启动选项,这是我希望在第一

我有一个音乐流应用程序,既有免费功能,也有付费功能。主活动提供了登录/订阅或免费试用的选项。如果用户选择“登录/订阅”,则他们将进入登录屏幕,在那里他们可以登录或创建帐户。但是,如果用户选择“免费试用”,则会将其带到功能有限的库屏幕。现在的情况是,如果他们选择“免费试用”,那么每次打开应用程序时,都会要求他们再次登录或免费试用

我想改变这一点,这样,一旦他们选择“免费试用”选项,他们就再也看不到这些选项,而是带到功能有限的库屏幕

因此,我将HomeActivity设置为启动选项,这是我希望在第一次启动后每次都使用的活动。这很有效

然后,我在HomeActivity.java中将以下代码添加到onCreate中

其思想是,在第一次启动时,它将启动MainActivity,然后将布尔值isFirstRun设置为false,并且不再启动MainActivity

但是,它不起作用。似乎每次都将isFirstRun设置为true。我该如何解决这个问题

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Boolean isFirstRun = getSharedPreferences("PREFERENCE", MODE_PRIVATE)
            .getBoolean("isFirstRun", true);

    if (isFirstRun) {
        //show start activity

        startActivity(new Intent(this, MainActivity.class));
        Toast.makeText(this, "First Run", Toast.LENGTH_LONG)
                .show();
    }


    getSharedPreferences("PREFERENCE", MODE_PRIVATE).edit()
            .putBoolean("isFirstRun", false).commit();

我自己想出来的。这是我自己的错

虽然我在运行>编辑配置下指定了要启动的不同活动,但我没有在我的mainifest文件中为HomeActivity设置意图筛选器


生活和学习我猜

顺便说一句,我没有写这段代码。我的应用程序是由其他人完成的,但他们一直很难处理,因此我正在尝试修复一些错误。尝试在MainActivity中使用fragment,然后选择所需的片段并加载它。我编辑了我的问题,因为我找到了一个应该有效,但无效的解决方案。