如何将启动画面加载一次?

时间:2013-03-18 14:40:36

标签: java android eclipse splash-screen dynamic-splash-screen

所以......我开发了一个成功运行的启动画面。如何让它运行一次(并且只运行一次)?我想建立一个注册屏幕,但我只希望它为用户出现一次。

帮助!

Amani Swann

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.content.Intent;
import com.nfc.linkingmanager.R;

public class SplashScreen extends Activity {

private boolean mIsBackButtonPressed;
private static final int SPLASH_DURATION = 1000; 

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

    setContentView(R.layout.splash_screen);

    Handler handler = new Handler();


    handler.postDelayed(new Runnable() {

        @Override
        public void run() {



            finish();

            if (!mIsBackButtonPressed) {

                Intent intent = new Intent(SplashScreen.this, NewCore.class);
                SplashScreen.this.startActivity(intent);
           }

        }

    }, SPLASH_DURATION);

}

 @Override
 public void onBackPressed() {
    mIsBackButtonPressed = true;
    super.onBackPressed();

}
}

5 个答案:

答案 0 :(得分:3)

使用SharedPreferences存储已经显示屏幕的事实;一开始,你检查这个,如果有的话,你可以通过启动下一个活动来替换活动,并立即为启动画面调用finish()

答案 1 :(得分:1)

您需要在共享偏好设置中存储标记,例如

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this );
finish();
if (prefs.getBoolean("SplashFlag", false)&&!mIsBackButtonPressed){

 Intent intent = new Intent(SplashScreen.this, NewCore.class);
                SplashScreen.this.startActivity(intent);
}else {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("SplashFlag", true); // value to store
//again there are values for int, long, string, float, boolean
editor.commit();//This is needed or the edits will not be put into the prefs file
}

答案 2 :(得分:0)

使用SharedPreferences您可以存储boolean例如seenSplash,您可以默认为false。然后使用if检查它是否为false然后显示启动。在用户看到启动画面后获得Editor,您将该布尔值更改为true。

不要忘记commit()编辑器上的更改。

答案 3 :(得分:0)

在您的注册屏幕中获取登录详细信息,并与您在共享首选项中保存的值进行比较。或者像用户名这样的硬编码是admin,密码是admin。两个值都是真的只是为了进入启动画面,否则重定向到其他任何你喜欢的页面。

答案 4 :(得分:0)

有两种方法可以做到这一点

第1次

finish();
SplashScreen.this.startActivity(intent);

Android Manifest中的第二名 你宣布启动画面活动的地方

添加此

android:noHistory=true