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)
的通知時,使用者開關執行的方法。
注意:當應用程序是前臺/後臺時,它不應該關閉並打開新的。它必須在現有應用程序中更新。
希望你瞭解我的情況。提前致謝。