0
アクティビティが実行されているかどうかをチェックしても、カスタムダイアログを開くときにRuntimeExceptionが発生します。
これはカスタムのスプラッシュスクリーンで、アプリの起動時にトリガーされます。最初の打ち上げはすべてうまくいくが、アプリがバックグラウンドになって再び開くと、クラッシュが発生する。
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] 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();
}
}
}
});
}
任意のアイデア?あなたの助けを事前に
感謝:)
あなたのダイアログでは、あなたのアクティビティのコンテキストを見つけることができない可能性があります。 if(!activity.isFinishing())ではなく 'if(activity!= null)'を試してください。 – SripadRaj
ログのエラーメッセージが表示されます。アクティビティが終了したときにダイアログを表示しようとしています。 – Abbas
なぜ静的ですか?どこからダイアログを開きますか。空のonCreate(バンドルsavedInstanceState){ SplashScreen.show(この保護 'パブリッククラスMainActivityがReactActivity { @Override を拡張 :それは外部のライブラリだと私はそこからそれを呼んでいるので、 – Ramit