2017-09-11 12 views
1

ユーザーがプッシュ通知をクリックした後に表示するカスタムダイアログボックスが1つあります。私はここでFirebaseMessagingServiceを使用しています。プッシュ通知をクリックしてアプリケーションがフォアグラウンドになると、カスタムダイアログボックスを表示する方法

以下はプッシュ通知を受信するためのコードです。私は意図を作り、放送しています。私の基本活動で

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    super.onMessageReceived(remoteMessage); 

    if (remoteMessage.getData().size() > 0) { 
     Intent intent = new Intent(Cons.INTENT_FILTER); 

     try { 
      // getting my data here 
      Bundle bundle = new Bundle(); 
      bundle.putSerializable(key, data); 
      intent.putExtras(bundle); 
     } 
     catch (Exception e){ 

     } 
     sendBroadcast(intent); 
    } 

} 

私は意図を受信して​​、ダイアログボックスを表示しBroadcastReceiverを使用しています。

private BroadcastReceiver myReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
     DialogFragment dialogFragment = new CustomDialog(); 
     Bundle bundle = new Bundle(); 
     // I am getting data from intent. 
     bundle.putSerializable(key, data); 
     dialogFragment.setArguments(bundle); 
     dialogFragment.show(transaction, "dialog"); 
    } 
}; 

アプリがフォアグラウンドにある場合、すべてのデータを含むダイアログボックスが表示されます。このコードは、アプリがバックグラウンドの場合、またはアプリが実行されていない場合は機能しません。

私は、アプリケーションの実行状態を取得し、それに応じていくつかの条件を入れると言うソリューションを探すことを試みました。他の解決方法があるかどうかを知りたいおかげさまで

答えて

0

シンプルなアクティビティをダイアログとして作成して使用します。あなたの活動へ

設定ダイアログのテーマ:私は、ダイアログとしての私の活動を表示したくない

<activity name=".MyDialogActivity" android:theme="Theme.AppCompat.Dialog"/>

+0

。私の質問をよく読んでください。ありがとう。 – Pooja

+0

私はあなたの要件を知っています。アクティビティなしでダイアログを表示することはできません。 DialogFragmentではなくActivityを作成します。 –

+0

私はすでに活動しています。私の2番目のコードはActivityです。 – Pooja

関連する問題