我尝试打开自定义对话框时遇到RuntimeException,即使我检查活动是否正在运行。
这是一个自定义启动画面,它会在启动应用时触发。第一次发布时一切顺利,但当我的应用程序进入后台并重新打开时,就会发生崩溃。
我明白了:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@e9b1e4 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:571)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
at android.app.Dialog.show(Dialog.java:319)
at com.mehcode.reactnative.splashscreen.SplashScreen$1.run(SplashScreen.java:23)
我的代码如下:
private static Dialog mSplashDialog;
/**
* Show the splash screen.
*/
public static void show(final Activity activity) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
if (!activity.isFinishing()) {
mSplashDialog = new Dialog(activity, R.style.RNSplashScreen_SplashTheme);
mSplashDialog.setCancelable(false);
if (!mSplashDialog.isShowing()) {
mSplashDialog.show();
}
}
}
});
}
我缺少什么想法?
提前感谢您的帮助:)
答案 0 :(得分:0)
添加权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
解决了React-Native的问题。