学习了安卓的数据存储之后,准备做一个关于安卓引导页面的小demo。
主要使用到的是sharedpreference,通过它来存储一个数据来代表该应用是否是第一次被打开,如果是则进入引导页面,如果不是则直接进入主页面。
话不多说,直接上代码。
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
boolean mFirst = isFirstEnter(SplashActivity.this, SplashActivity.this.getClass().getName());
if (mFirst){
mHandler.sendEmptyMessageDelayed(SWITCH_GUIDACTIVITY, 2000);
}else {
mHandler.sendEmptyMessageDelayed(SWITCH_MAINACTIVITY,2000);
}
}
private static final String NAME = "tag";
private static final String KEY_GUIDE_ACTIVITY = "activity_guide";
private boolean isFirstEnter(Context context,String className){
if (context==null || className == null ||
"".equalsIgnoreCase(className))return false;
String mResultStr = context.getSharedPreferences(NAME,context.MODE_PRIVATE).getString(KEY_GUIDE_ACTIVITY,"");
if (mResultStr.equalsIgnoreCase("false")){
return false;
}else {
return true;
}
}
private static final int SWITCH_MAINACTIVITY = 1000;
private static final int SWITCH_GUIDACTIVITY=1001;
public android.os.Handler mHandler = new android.os.Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case SWITCH_MAINACTIVITY:
Intent mIntent = new Intent();
mIntent.setClass(SplashActivity.this, MainActivity.class);
SplashActivity.this.startActivity(mIntent);
SplashActivity.this.finish();
break;
case SWITCH_GUIDACTIVITY:
mIntent = new Intent();
mIntent.setClass(SplashActivity.this,GuideActivity.class);
SplashActivity.this.startActivity(mIntent);
SplashActivity.this.finish();
break;
}
super.handleMessage(msg);
}
};
}