0

我面臨着一些問題,需要你們的幫助,我有我的應用程序在前臺,當我從服務器發送的通知,然後通知來與通知圖標。如何在我的應用程序處於前景時關閉通知圖標?

但我需要什麼,當我的應用程序是在前臺用戶正在觀看的通知,然後通知圖標不應該被顯示給用戶。

當我的應用程序在後臺/或應用程序時,未啓動然後通知圖標通知要來,並且用戶按壓的通知圖標,然後通知圖標被擱置了該工作得很好。

我曾試圖:

if(getIntent()!=null){ 
     Log.e("getIntent","getIntent"); 

     broadcastReciver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       if (intent.getAction().equals(NOTIFY_ACTIVITY_ACTION)) 
       { 
        if(intent.getExtras().getBoolean("reload")){ 

         int notificationId = intent.getIntExtra("notificationId", 0); 
         Log.e("notificationId","notificationId---"+notificationId); 
         NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
         manager.cancel(notificationId); 

         setFragmentView(0); 

         //finish(); 
        } 
       } 
      } 
     }; 
    } 

在onMessageReceived:

Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     intent.putExtra("notificationId",NOTIFICATION_ID); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, 
       PendingIntent.FLAG_ONE_SHOT); 

     Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.splash_logo) 
       .setContentTitle("Logizo") 
       .setContentText("New Order Arrived") 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL; 
     notificationManager.notify(NOTIFICATION_ID/* ID of notification */, notificationBuilder.build()); 
+0

你究竟想做什麼?你不想讓你的應用程序在前臺顯示通知? – Prashant

+0

@Prashant是現在解決了。 –

回答

0

我用下面的代碼刪除的通知圖標。

private void removeNotificationsFromStatusBar(Context context, int notificationId) { 

    try { 
     NotificationManager notificationManagerNS = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManagerNS.cancel(notificationId); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Log.e(NotificationsFragment.class.getSimpleName(), "Unable to remove notification from status bar"); 
    } 

} 
+0

我必須把這個代碼?在啓動器活動或通知服務? –

+0

你到處都可以使用此代碼,但你必須有背景和使用上下文管理器中創建通知管理器,然後通過使用notificationId取消通知。 –

+0

檢查更新的代碼。 –

相關問題