我的首页是UpdateActy,检查是否有更新的,如果没有更新的话,就Intent跳转到WebViewActy中加载webview页面。
现在有个需求就是在webview页面点击两次返回键退出app
于是我就在WebViewActy中重写onKeyDown
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
然后发现,点击两次退出后,回到的是UpdateActy页面,并没有关闭整个app
于是就在想到看看移除UpdateActy这个活动栈或者在它跳转到WebViewActy的时候就自己Finnish掉。
最后采用的是关闭移除UpdateActy这个活动栈
在manifest注册页面中加入
android:launchMode="singleTask"
android:noHistory="true"
如下
<activity
android:name=".UpdateActy"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这样就解决了在webview页面中无法关闭整个app的问题了
参考文章:https://blog.youkuaiyun.com/wapchief/article/details/77447396