以下是我的通知案例: 通知到达时,应用可能是前景,背景或已关闭
1。对于前景: 当用户点按通知时,应用应显示主要活动。
2。背景: 当用户点击通知时,应该将应用程序带到前面并显示主要活动
第3。应用关闭时: 当用户点击通知时,应该打开应用程序,并且应该显示主要活动。
当我用Intent.FLAG_ACTIVITY_SINGLE_TOP
& PendingIntent with 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());
}
如果你考虑使用Above代码,那么当用户点击通知时,需要从MainActivity(DashboardActivity)
执行一个方法。
注意:当App是Foreground / Background时,它不应该关闭并打开新的。它必须在现有应用程序中更新。
希望你了解我的情况。提前谢谢。
答案 0 :(得分:0)
当用户点击有"Intent.FLAG_ACTIVITY_SINGLE_TOP"
意图的通知时,不会调用意图的onCreate方法。当用户点击通知时,它会调用一个方法,如下所示:
@Override
protected void onNewIntent(Intent intent) {}
感谢您阅读此问题:)