2012-03-06 23 views
1

私は、「画面読み込み」アクティビティを起動する主なアクティビティを持っています。 「読み込み画面」が終了したら、一種のスプラッシュ画面を表示する必要があります。当然、私はDialogクラスを選択しました。しかし、をonResumeから呼び出すと、関連するすべての記事から、これを行う正しい方法であることを理解していても、アプリケーションは失敗します。"onResume"から "showDialog"を呼び出すとランタイム例外がスローされます

誰でも正しい方向に向けることができますか?それは場合に役立ちます。ここ

は、コードサンプルです:

@Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DIALOG_SPLASH: 
      promo = new PromoSplashScreen(getAppContext(), R.style.NoFrameNoBorderBoTitle); 
      promo.setCancelable(false); 
      promo.setImage(ApplicationData.config.splashImageURL); 
      return promo; 
     default: 
      return super.onCreateDialog(id); 
     } 
    } 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     if (ApplicationData.config == null) return; 
     if (ApplicationData.config.splashEnabled && !ApplicationData.config.splashPlayed && ApplicationData.config.splashImageURL != "") { 
      // Play splash screen 
      ApplicationData.config.splashPlayed = true; 
      showDialog(DIALOG_SPLASH); 
     } 
    } 
+1

ランタイム例外のLogCatを投稿できますか? –

+0

03-06 10:33:17.625:WARN/WindowManager(516):非アプリケーショントークンWindowToken {409d6080トークン= null}でウィンドウを追加しようとしました。中止する。 –

答えて

2

は、ダイアログの作成時に、それを呼び出すとき、「getAppContextは()」NULL値であると思われます。 Android: ProgressDialog.show() crashes with getApplicationContext

これを回避するには、アクティビティの再開から数ミリ秒後にスレッドを使用してダイアログを表示するというハッキングを使用しています。そうすることで、getAppContextは呼び出されたときにnullではありません。

+0

ああ、あなたのログを使って、私は "getAppContext()"が表示ダイアログを呼び出すときにnullかもしれないことがわかった。これはこのスレッドで議論されていて、それを回避するためのハックもあります:) http:// stackoverflow .com/questions/1561803/android-progressdialog-show-crashes-with-getapplicationcontext – Soham

+0

あなたが言うコンテキスト... –

+0

あなたは何ですか?魅力のように働いた。 –

関連する問題