我想创建一个通知,点击它时应该打开活动。但是当我点击通知活动时没有打开。 任何帮助将不胜感激。这是我的代码:
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(context, MessageReceivedActivity.class);
intent.putExtra("payload", payload);
intent.setAction(Long.toString(System.currentTimeMillis()));
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification.Builder notification = new Notification.Builder(context)
.setContentTitle("Message Received")
.setSmallIcon(R.drawable.icon)
.setContentText(payload)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
Notification notificationn = notification.getNotification();
notificationManager.notify(0, notificationn);
答案 0 :(得分:5)
使用此功能:
Notification.Builder notification = new Notification.Builder(context)
.setContentIntent(getDialogPendingIntent(Text, intentName));
private PendingIntent getDialogPendingIntent(String dialogText,
String intentname) {
return PendingIntent.getActivity(
context,
dialogText.hashCode(),
new Intent(ACTION_DIALOG)
.putExtra(Intent.EXTRA_TEXT, dialogText)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setAction(intentname), 0);
}
getDialogPendingIntent(Text,intentName): intentName = com.yourProject.exrta.yourIntentName
如果需要,您可以更改addFlags
或putExtra
。
如果使用Intent Name调用不起作用,请使用类似的类,它必须有效:
Intent notificationIntent = new Intent(MainActivity.this, TestActivity.class);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(MainActivity.this, 0, notificationIntent, 0);
NotificationManager notificationManager = (NotificationManager) MainActivity.this
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder notification = new Notification.Builder(MainActivity.this)
.setContentTitle("Message Received")
.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(true)
.setContentIntent(intent);
Notification notificationn = notification.getNotification();
notificationManager.notify(1, notificationn);
答案 1 :(得分:2)
试试这个:
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(context, MessageReceivedActivity.class);
intent.putExtra("payload", payload);
intent.setAction(Long.toString(System.currentTimeMillis()));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification.Builder notification = new Notification.Builder(context)
.setContentTitle("Message Received")
.setSmallIcon(R.drawable.icon)
.setContentText(payload)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
Notification notificationn = notification.build();
notificationManager.notify(YOUR_NOTIF_ID, notificationn);
答案 2 :(得分:0)
这对我有用:
Context context1 = loggedin.this.getApplicationContext();
NotificationManager notificationManager = (NotificationManager)context1.getSystemService(NOTIFICATION_SERVICE);
Notification updateComplete = new Notification();
updateComplete.icon = android.R.drawable.stat_notify_sync;
updateComplete.tickerText = context1.getText(R.string.notification_title);
updateComplete.when = System.currentTimeMillis();
Intent notificationIntent = new Intent(context1,loggedin.class);
PendingIntent contentIntent = PendingIntent.getActivity(context1, 0,notificationIntent, 0);
String contentTitle = context1.getText(R.string.notification_title).toString();
String contentText;
contentText = context1.getText(R.string.notification_info_success).toString();
updateComplete.setLatestEventInfo(context1, contentTitle,contentText, contentIntent);
int LIST_UPDATE_NOTIFICATION = 0;
notificationManager.notify(LIST_UPDATE_NOTIFICATION, updateComplete);