Java 欢迎活动代码放在哪里

Java 欢迎活动代码放在哪里,java,android,Java,Android,我搜索了很多,但没有找到答案。我开发了一个android应用程序,在第一次午餐时,用户将看到一个由viewpager构成的欢迎屏幕。问题是我不知道在我的应用程序中放置欢迎活动代码的最佳位置 最简单的方法可能是在第一行的主要活动中,甚至在super.onCreate()之前,在onCreate方法中,我尝试获取共享的首选项值,然后评估它是否是第一顿午餐。如果是,那么我开始如下所示的欢迎活动 public class MainActivity extends Activity { @Over

我搜索了很多,但没有找到答案。我开发了一个android应用程序,在第一次午餐时,用户将看到一个由viewpager构成的欢迎屏幕。问题是我不知道在我的应用程序中放置欢迎活动代码的最佳位置

最简单的方法可能是在第一行的主要活动中,甚至在super.onCreate()之前,在onCreate方法中,我尝试获取共享的首选项值,然后评估它是否是第一顿午餐。如果是,那么我开始如下所示的欢迎活动

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true);
        if (welcome) {
            // go and start welcoming activity
            Intent intent = new Intent(this, WelcomeSlideActivity.class);
            startActivity(intent);
        }


        super.onCreate();
    }
}
public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true);
        if (welcome) {
            // go and start welcoming activity
            Intent intent = new Intent(this, WelcomeSlideActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }
}
但我找到了另一种解决方法。这是应用程序类。因为应用程序类是第一个,它甚至比我的应用程序中的任何其他代码都要早运行。所以我想,我会很高兴在那里这样做,如下所示

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true);
        if (welcome) {
            // go and start welcoming activity
            Intent intent = new Intent(this, WelcomeSlideActivity.class);
            startActivity(intent);
        }


        super.onCreate();
    }
}
public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true);
        if (welcome) {
            // go and start welcoming activity
            Intent intent = new Intent(this, WelcomeSlideActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }
}

所以我进退两难,哪一个是最好的选择。我甚至不确定我是否以正确的方式来做,因为android开发者网站或任何地方都没有这样的文档。

看看如何以正确的方式创建初始屏幕

至于使用
应用程序
类-这主要用于应用程序范围的配置,以维护全局应用程序状态。因此,从这里开始一个活动没有多大意义,因为它的目的已经变成了应用程序的入口点,而不是为整个应用程序提供状态

此外,为什么不将
WelcomeSlideActivity
作为第一个“启动器”活动?然后,您可以在其中创建是否在没有历史记录的情况下启动下一个活动或是否显示当前视图的逻辑


理想情况下,您应该创建一个启动屏幕活动,它决定是显示
WelcomeSlideActivity
还是显示
Main活动
。这样做的好处是,当应用程序确定要启动的活动时,会向用户显示一个启动屏幕,通知用户应用程序已启动。

看看如何以正确的方式创建启动屏幕

至于使用
应用程序
类-这主要用于应用程序范围的配置,以维护全局应用程序状态。因此,从这里开始一个活动没有多大意义,因为它的目的已经变成了应用程序的入口点,而不是为整个应用程序提供状态

此外,为什么不将
WelcomeSlideActivity
作为第一个“启动器”活动?然后,您可以在其中创建是否在没有历史记录的情况下启动下一个活动或是否显示当前视图的逻辑


理想情况下,您应该创建一个启动屏幕活动,它决定是显示
WelcomeSlideActivity
还是显示
Main活动
。这样做的好处是,当应用程序确定要启动的活动时,会向用户显示一个启动屏幕,通知用户应用程序已启动

您想在用户首次启动应用程序后仅显示一次WelcomeSlideActivity吗?是,我想这样做,但我曾经用专业应用程序的最佳方式在我的应用程序中显示弹出对话框,使用
SharedReferences
,只需简单的
if
检查,但仍然工作得很好。当然,如果用户重新安装应用程序,欢迎对话框将再次显示。您想在用户首次启动应用程序后仅显示WelcomeSlideActivity一次吗?是,我想这样做,但我曾经用专业应用程序的最佳方式在我的应用程序中显示弹出对话框,使用
SharedReferences
,只需简单的
if
检查,但仍然工作得很好。当然,如果用户重新安装应用程序,欢迎对话框将再次显示。假设我已将welcomeSlideActivity作为启动程序活动。在第一次活动中会显示欢迎的内容,但在每次发布时,它似乎什么都不做,只是将用户带到下一个活动中,浪费内存或毫无意义地降低性能。那么你觉得呢?@xFighter如果你选择开发一个滑动欢迎屏幕,并且每次午餐都会紧张地显示出来,那么标准行为就是只在第一次午餐时显示。这是不需要动脑筋就能实现的,因为你所需要做的就是在SharedReference上维护一个标志。@blackpanther你提供的链接对我很有帮助,但我可以做同样的事情,而不需要做任何活动。我只需要在清单和主活动中通过以下代码setTheme(R.style.SplashAppTheme)创建一个主题和一些配置;假设我将welcomeSlideActivity作为启动器活动。在第一次活动中会显示欢迎的内容,但在每次发布时,它似乎什么都不做,只是将用户带到下一个活动中,浪费内存或毫无意义地降低性能。那么你觉得呢?@xFighter如果你选择开发一个滑动欢迎屏幕,并且每次午餐都会紧张地显示出来,那么标准行为就是只在第一次午餐时显示。这是不需要动脑筋就能实现的,因为你所需要做的就是在SharedReference上维护一个标志。@blackpanther你提供的链接对我很有帮助,但我可以做同样的事情,而不需要做任何活动。我只需要在清单和主活动中通过以下代码setTheme(R.style.SplashAppTheme)创建一个主题和一些配置;