如何在App上显示一次Splash Screen?

时间:2016-07-30 11:15:46

标签: android android-layout splash-screen

如何在USER安装我的应用程序时显示启动画面。我不希望每次用户打开时都显示启动画面但仅在USER将其安装到手机上并首次打开时才显示。怎么做到这一点?

3 个答案:

答案 0 :(得分:1)

每次应用程序打开时,您都需要检查是否是首次启动应用程序?如果是,则显示您的一次启动画面,否则显示主要活动

您可以使用共享首选项来存储有关首次启动的数据。

答案 1 :(得分:1)

下面,

您应该创建应用程序类,并且需要从应用程序类onCreate方法调用您的require活动。

    public class Appli extends android.app.Application {
        @Override
        public void onCreate() {
            super.onCreate();
//manage base on your requirement,you can use share preference for splash screen track
            Intent intent = new Intent(this,Main2Activity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            startActivity(intent);

        }

清单:

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:name=".Appli"
        android:theme="@style/AppTheme">
</application>

以上代码确定无误,我已经过测试。

答案 2 :(得分:0)

在您每次启动应用时都会显示的主要活动中,请尝试以下逻辑。

 SharedPreferences mPrefs;
 final String splashScreenPref= "SplashScreenShown";


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mPrefs = PreferenceManager.getDefaultSharedPreferences(this);


    Boolean splashScreenShown= mPrefs.getBoolean(splashScreenPref, false);

    if (!splashScreenShown) {            
        Intent intent=new Intent(MainActivity.this,SplashScreenActivity.class);
        startActivity(intent);

        SharedPreferences.Editor editor = mPrefs.edit();
        editor.putBoolean(splashScreenShown, true);
        editor.commit(); 
        finish();
    }

}

请参阅以下链接,以便更好地了解如何使用SharedPreferences:link1link2link3