判断是否第一次进入应用,以决定是否启动引导页。
这个都用常规方法,使用SharePreference进行保存变量,然后每次进入应用时首先先检测变量的值,来决定是否启动引导页
代码如下:
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_splash);
boolean mFirst = isFirstEnter(SplashActivity.this,SplashActivity.this.getClass().getName());
Toast.makeText(this, mFirst+"", Toast.LENGTH_SHORT).show();
if(mFirst)
mHandler.sendEmptyMessageDelayed(SWITCH_GUIDACTIVITY,100);
else
mHandler.sendEmptyMessageDelayed(SWITCH_MAINACTIVITY,100);
SharedPreferences sharedPreferences= this.getSharedPreferences("my_pref", MODE_PRIVATE);
sharedPreferences.edit().putString("guide_activity", "false").commit();
}
private static final String SHAREDPREFERENCES_NAME = "my_pref";
private static final String KEY_GUIDE_ACTIVITY = "guide_activity";
private boolean isFirstEnter(Context context,String className){
if(context==null || className==null||"".equalsIgnoreCase(className))return false;
String mResultStr = context.getSharedPreferences(SHAREDPREFERENCES_NAME, Context.MODE_WORLD_READABLE)
.getString(KEY_GUIDE_ACTIVITY, "");//取得所有类名 如 com.my.MainActivity
if(mResultStr.equalsIgnoreCase("false"))
return false;
else
return true;
}
private final static int SWITCH_MAINACTIVITY = 1000;
private final static int SWITCH_GUIDACTIVITY = 1001;
public Handler mHandler = new Handler(){
public void handleMessage(Message msg) {
switch(msg.what){
case SWITCH_MAINACTIVITY:
Intent mIntent = new Intent();
mIntent.setClass(SplashActivity.this, Welcome.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);
}
};
}