1

這裏是我的情況下通知: 通知時到達,應用程序可能是前景,背景,或關閉Android的推送通知

1.對於前景: 當用戶通知自來水,應用程序應該顯示主要活動。

2.對於背景: 當通知用戶抽頭,應用程序應該引起前和應顯示主要業務

3.當應用程序是封閉: 當通知用戶抽頭,應用應打開,並應顯示主要活動。

當我設置意圖與Intent.FLAG_ACTIVITY_SINGLE_TOP & PendingIntent與PendingIntent.FLAG_ONE_SHOT。它按預期工作,但是當用戶點擊通知時,它不會調用主活動的onCreate方法。

private void showNotification() { 

     Intent intent = new Intent(this, DashboardActivity.class); 
     intent.putExtra(AppConstants.SCREEN, screen); 
     intent.putExtra(AppConstants.USER_ID, user_id); 
     intent.putExtra(AppConstants.TABLE_ID, table_id); 
     intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 
      PendingIntent.FLAG_ONE_SHOT); 

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(getNotificationIcon()) 
      .setContentTitle(getResources().getString(R.string.app_name)) 
      .setContentText(message) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 

    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(0, notificationBuilder.build()); 
    } 

如果你認爲上面的代碼則需要從MainActivity(DashboardActivity)的通知時,使用者開關執行的方法。

注意:當應用程序是前臺/後臺時,它不應該關閉並打開新的。它必須在現有應用程序中更新。

希望你瞭解我的情況。提前致謝。

回答

0

當用戶點擊一個意圖使用"Intent.FLAG_ACTIVITY_SINGLE_TOP"的通知時,將不會調用意圖的onCreate方法。它會調用一個方法,在通知時用戶點擊,這是寫在下面:

@Override 
protected void onNewIntent(Intent intent) {} 

感謝您閱讀了這個問題:)