夕辞

Android APP后台重新打开,不希望重复启动开屏页解决方案 | 夕辞夕辞

Android APP后台重新打开,不希望重复启动开屏页解决方案

正常情况下,APP开发时,都需要一个启动页,作用是展示LOGO或者广告。

正常情况下如果通过Home键退出APP,实际上APP并没有退出,此时打开时仍然会展示广告,这个操作很有可能损失用户体验。

而正常情况下如果直接进入activity时跳转到下个界面,又会出现白屏的问题,如何解决呢,以下给个解决方案。

 

第一步:启动页处理。

在启动页的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;
            }
        }
    }
}   

 

第二步:MainAcitivy处理。

MainActivity的启动模式设置为singleTask,代码如下:

<activity
    android:name=".activity.MainActivity"
    android:launchMode="singleTask"
    android:screenOrientation="portrait" />

 

第三步(可选):期望在主界面返回不退出,而是进入后台。

很多APP在用户第一次点击返回键时,并不直接退出,二次点击才会退出,参考代码如下:

/**
 * 键盘控制两次点击退出
 */
@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);
}
2021年2月24日 / /
标签:  暂无标签
回到顶部