Android 只显示一次引导页
以前一直被网络上的代码坑,这次做个记录,也算是帮一帮正在被坑的人
这个方法不需要创建新的Activity或者Fragment
其实这个功能的逻辑是:当你第一次点击app的时候,显示引导页,而在按返回键后回到app界面或是第二次开启app时,不显示引导页。
因此,只需要在不需要二次显示界面的Activity或者Fragment中编写此功能
代码如下:(引导页:FlashActivity,注册页:LoginActivity)
public class FlashActivity extends Activity {
private SharedPreferences mPreferences;
/**
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
SharedPreferences jame = getSharedPreferences("jame", 0);//创建一个文件用来储存app的开启次数状态
boolean isFirst = jame.getBoolean("isFirst", true);//这个文件里面的布尔常量名,和它的初始状态,状态为是,则触发下面的方法
if (isFirst) {
setContentView(R.layout.activity_flash);//显示引导页界面
SharedPreferences.Editor edit = jame.edit();//创建状态储存文件
edit.putBoolean("isFirst", false);//将参数put,改变其状态
edit.commit();//保证文件的创建和编辑
new CountDownTimer(1000, 1000) //这个方法是一个计时器
{
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
Intent intent = new Intent();
intent.setClass(FlashActivity.this, LoginActivity.class);
startActivity(intent);
//下面的功能实现了引导页的逐渐关闭
int VERSION = Integer.parseInt(android.os.Build.VERSION.SDK);
if (VERSION >= 5) {
FlashActivity.this.overridePendingTransition(R.anim.alpha_in, R.anim.alpha_out);
}
finish();
}
}.start();
} else {
setContentView(R.layout.activity_login);//否则就显示注册界面
}
}
}