首先把思路概括一下,当我们下载一个APP,然后去运行时,当我们第一次点开时,经常会是进入一个导航页面,然后当我们再次进如时,会进入主页面. 捎带去除ActionBar和android系统状态栏消失
实现这个功能用到了SharedPreference.
SharedPerferenceo是内部存储区,它能实现持久化存储,但是它并不能保存太大的数据,只能保存一些轻量级数据.当程序卸载时,保存的内容会随之删除
在这里尽量保存一些 账号,密码,用户名等个人信息,它的路径是在 data/data/包名/shared_prefs/文件名,不说这么多了,直接上代码:
首先先写了个子线程,模拟让他3秒后开始跳转
public class SplashActivity extends Activity {
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//取消actionbar
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_splash);
//是Android系统状态栏消失
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
sp = getSharedPreferences("appInfo", MODE_PRIVATE);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//如果是首次使用跳转到导航界面
//用过了 跳到主界面
boolean isFirst = sp.getBoolean("isFirst", true);
if (isFirst) {
SplashActivity.this.startActivity(new Intent(SplashActivity.this, GuideActivity.class));
}else{
SplashActivity.this.startActivity(new Intent(SplashActivity.this, MainActivity.class));
}
SplashActivity.this.finish();
}
}).start();
}
}
如果是第一次则让他跳到导航页面,并且让他保存在内存之中,
public class GuideActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
}
public void go(View v){
SharedPreferences sp = getSharedPreferences("appInfo", MODE_PRIVATE);
Editor edit = sp.edit();
edit.putBoolean("isFirst", false);
edit.commit();
GuideActivity.this.startActivity(new Intent(this, MainActivity.class));
this.finish();
}
}
如果是第二次则让他跳到主页面
对了,SharedPerferenceo也可以用来传值
如果哪里看不懂,尽请留言: