2016-09-12 26 views
0

MainActivityで通知を受け取ります。それをクリックすると、ダイアログの断片が開きます。現在、私はこれをやっている -通知をクリックするとダイアログが開きます

String textNotificationMessage = textMessageReceivedEvent.getMessage(); 

Intent notificationIntent = new Intent(MainActivity.this, MessagingDialogFragment.class); 
     notificationIntent.putExtra("NotificationMessage",textNotificationMessage); 

     MessagingDialogFragment messagingDialogFragment = (MessagingDialogFragment) MessagingDialogFragment.instantiate(MainActivity.this, MessagingDialogFragment.class.getName()); 
     messagingDialogFragment.show(getSupportFragmentManager(),MessagingDialogFragment.class.getName()); 

     PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT); 
     Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

を、である私がnotifictaionを持っている時はいつでも、それはクリックせずに自動的にDialogFragmentを開き、これはありません。しかし、私はそれをクリック後に開く必要があります。これをどのように達成するのですか?このように完了

+0

いつこのコードを実行していますか? inside onMessageReceived()? –

+0

はい...通知ポップアップコードはこのメソッドにあります。私は通知をクリックして実装したい –

+1

[表示中のインテントを使用してダイアログを表示]の可能な複製(http://stackoverflow.com/questions/15874144/show-dialoge-using-pending-intent-in-android) – phongvan

答えて

1

は今、通知のクリックイベントにこの活動に移動

<activity 
android:name=". MyDialog" 
android:theme="@android:style/Theme.Dialog" /> 

下記のようにしますマニフェストファイルに今MyDialog.java という名前のアクティビティを作成します。

0

通知でonClickListenerを設定する唯一の方法は、PendingIntentです。 PendingIntentをアクティビティの1つを開き、アクティビティを透明にして、ダイアログを開くコードをonCreate()finish()というダイアログを閉じるときのアクティビティに入れてください。

Intent notifyIntent = new Intent(context,ActivityContainingDialog.class); 
notifyIntent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK); 
//UNIQUE_ID if you expect more than one notification to appear 
PendingIntent intent = PendingIntent.getActivity(SimpleNotification.this, UNIQUE_ID, 
      notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);