单击通知时如何打开 Activity
How can i open Activity when notification click
我需要在点击事件中使用通知,我有通知方法但是这个方法打不开我的activity。
我的代码:
private void sendNotification(String msg) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setContentTitle("EXX")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.setContentText(msg)
.setOngoing(true);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
这可能吗,
谢谢。
是的,有可能。
改变你的方法,像那样;
private void sendNotification(String msg) {
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("yourpackage.notifyId", NOTIFICATION_ID);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setContentTitle("EXX")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.addAction(getNotificationIcon(), "Action Button", pIntent)
.setContentIntent(pIntent)
.setContentText(msg)
.setOngoing(true);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
并添加您的主要活动
NotificationManager notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
此代码有效。
嘿@John 这很简单
你只需要做
Intent intent = new Intent(this, ResultActivity.class);
...
// 因为点击通知会打开一个新的 ("special") activity,所以
// 无需创建人工返回堆栈。
PendingIntent pendingIntent = TaskStackBuilder.create(getApp())
.addNextIntent(intent)
.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
并在mBuilder中设置pending Intent
private void sendNotification(String msg) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setContentTitle("EXX")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.setContentText(msg)
.setOngoing(true);
.setContentIntent(pendingIntent)
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
你完成了:)
我需要在点击事件中使用通知,我有通知方法但是这个方法打不开我的activity。
我的代码:
private void sendNotification(String msg) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setContentTitle("EXX")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.setContentText(msg)
.setOngoing(true);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
这可能吗,
谢谢。
是的,有可能。
改变你的方法,像那样;
private void sendNotification(String msg) {
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("yourpackage.notifyId", NOTIFICATION_ID);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setContentTitle("EXX")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.addAction(getNotificationIcon(), "Action Button", pIntent)
.setContentIntent(pIntent)
.setContentText(msg)
.setOngoing(true);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
并添加您的主要活动
NotificationManager notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
此代码有效。
嘿@John 这很简单
你只需要做
Intent intent = new Intent(this, ResultActivity.class);
... // 因为点击通知会打开一个新的 ("special") activity,所以 // 无需创建人工返回堆栈。
PendingIntent pendingIntent = TaskStackBuilder.create(getApp())
.addNextIntent(intent)
.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
并在mBuilder中设置pending Intent
private void sendNotification(String msg) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setContentTitle("EXX")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.setContentText(msg)
.setOngoing(true);
.setContentIntent(pendingIntent)
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
你完成了:)