2016-12-09 7 views
0

FireBase通知で作業しており、コンソールに入力したWebviewページに通知する通知を送信できます。IFとELSEの両方のステートメントを一緒に実行しています

問題は、IF文が一致するとelse文も発生するということですが、これが原因である可能性があります。

if(getIntent().getExtras()!=null) { 
    for (String key : getIntent().getExtras().keySet()) { 
     if (key.equals("url")){ 
      mwebView.loadUrl("http://example.com/" + getIntent().getExtras().getString(key)); 
     }else { 
      mwebView.loadUrl("http://example.com"); 
     } 
    } 
} 

同時に実行するため、アプリケーションがクラッシュします。その後、

if(getIntent().getExtras()!=null) 

とelse文をロードします。私はアプリに通常の方法をロードする際

はまた、それはと一致します。 getExtrasnullですか?私が最初にそれが次のステートメントを使用して、アプリケーションの新しいインスタンスをインストール

if(getIntent().getExtras()==null) { 
    if (haveNetworkConnection()) { 
     mwebView.loadUrl("http://example.com"); 
    } else { 
     mwebView.loadUrl("file:///android_asset/myerrorpage.html"); 
    } 
} 

更新:

このことが起こって、なぜ私は見つけることができないので、私は、別のアプローチをしようとしていますどのようにループ外の変数を次のように使用するのですか?

if(getIntent().getExtras()!=null) { 
    for (String key : getIntent().getExtras().keySet()) { 
     String valuex = getIntent().getExtras().getString(key); 
    } 
} 

if (haveNetworkConnection()) { 
    mwebView.loadUrl("http://example.com/" + valuex); 
} else { 
    mwebView.loadUrl("file:///android_asset/myerrorpage.html"); 
} 
+0

同時に実行するとどういう意味ですか?それは可能ではありません。 'if(getIntent()。getExtras()== null)'または 'if(key.equals(" url "))'? – Opiatefuchs

+0

'if(key.equals(" url "))' –

+0

あなたはmichelの答えにコメントしました。両方に乾杯して、両方が実行されているということが原因です。それはあなたの質問に投稿されたコードがまったく同じではないことを示唆しています。私自身の経験から、少しの細部は見落とされる可能性があるので、あなたのプロジェクトから完全なコードを投稿して、何かを残してはいけません。 – Opiatefuchs

答えて

0

IfとElseの両方を実行することはできません一気に

他のコードをチェックし、何らかの理由でこのコードセクションが2回実行されないようにする必要があります(TRUEで1回、FALSEで1回)。

+0

私はToastを両方に追加して両方を実行することを保証できます。両方で同時にToastを表示します。 –

+0

はい、どちらも実行できます。しかし、一人ではありません。コードセクションが2回呼び出されている可能性があります。 – Michel

+0

Googleは、Key/Valueを空のKey/Valueとともに送信すると思いますか?私は新しい通知を作成するときに空のキー/値があるように私が言う理由が、私はそれが何かを送信しているかどうかはわかりません –

関連する問題