APP 退出再打开,不重复启动开屏页

目的

APP 应用中,每次退出程序再次打开,或者按 Home 键回到桌面时,都会再次展示开屏页,这使用户体验极差,特别是那种眼睁睁看着读秒的开屏页

APP 退出再打开,不重复启动开屏页_第1张图片
image

实现

第一步:

在启动页的 Activity 中的 onCreate() 方法中填写如下代码:

protected void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
// 避免从桌面启动程序后,会重新实例化入口类的activity
if (!this.isTaskRoot()) { // 判断当前activity是不是所在任务栈的根
    Intent intent = getIntent();
    if (intent != null) {
        String action = intent.getAction();
        if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
            finish();
            return;
        }
    }
}
}   

第二步:

在 MainAcitivity 的启动模式设置为 SingleTask 代码如下所示:



    
    

 
 

第三部:

处理 MainAitivity 中 onKetDonw 方法中添加 moveTaskToBack(true) ,使程序进入后台而不退出

 /**
 * 键盘控制两次点击退出
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK
            && event.getAction() == KeyEvent.ACTION_DOWN) {
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            toast("再按一次退出程序");
            exitTime = System.currentTimeMillis();
        } else {
            // 不退出程序,进入后台
            moveTaskToBack(true);
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

你可能感兴趣的:(APP 退出再打开,不重复启动开屏页)