2016-04-28 18 views
2

通知が来て、アプリが既に開いているときにダイアログのみを表示したい。私は はないアプリがdivyabhaskar Androidアプリアプリが既に開いていて、通知が来たときにダイアログでプッシュ通知を表示するにはどうすればいいですか?

+0

登録解除onStopメソッドで放送

private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ApplicationConstants.MY_BROADCAST)) { //Log.v("", "inside on receiver-"); showDialog(intent.getStringExtra(ApplicationConstants.MESSAGE)); } } }; 

を受信します。 –

答えて

1

通知は、コード

ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); 
      List<ActivityManager.RunningTaskInfo> taskInfo = am 
        .getRunningTasks(1); 
      Log.d("current task :", "CURRENT Activity ::" 
        + taskInfo.get(0).topActivity.getClass().getSimpleName()); 
      ComponentName componentInfo = taskInfo.get(0).topActivity; 
         className = componentInfo.getClassName(); 
         Log.v("", "class Name-" + className); 

         if (extras != null) { 
          if (componentInfo.getPackageName().equalsIgnoreCase(
            getPackageName())) { 


            Log.v("", "inside app-"); 

            Intent broadcast = new Intent(ApplicationConstants.MY_BROADCAST); 
            broadcast.putExtra(ApplicationConstants.BOOKING_ID, bookingId); 
            broadcast.putExtra(ApplicationConstants.NOTIFICATION_TYPE, type); 
            broadcast.putExtra(ApplicationConstants.MESSAGE, message); 
            broadcast.putExtra(ApplicationConstants.CLASS_NAME, className); 
         LocalBroadcastManager.getInstance(this).sendBroadcast(
           broadcast); 
         Log.v("", "Sending broadcast...."); 
        } else { 
         sendNotification(extras); 
        } 

次の書き込みそして、あなたはダイアログをしたいアクティビティに放送受信機を登録してくるように開かれている場合notificationbarに通知を表示したいと考えています。

LocalBroadcastManager.getInstance(this).registerReceiver(receiver, 
      new IntentFilter(ApplicationConstants.MY_BROADCAST)); 

あなたが現在お使いのアプリでプッシュ通知を受信する方法についていくつかのコードを表示してください放送

@Override 
protected void onStop() { 
    super.onStop(); 
    if (receiver != null) { 
     LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver); 
    } 
}    
関連する問題