我想在用户点击通知时打开一个活动。我可以使用挂起的意图来做到这一点,即使活动已经运行也可以正常工作。但我想在点击操作上做一些事情。现在我在onCreate
方法中这样做。它仅在活动未运行时有效。我尝试使用onNewIntent
方法,但未达到上述条件。我现在能做什么?
答案 0 :(得分:1)
NOTIFICATION_ID =>用于标识进一步操作的通知的数字。 mContext =>应用背景。 ResultActivity =>要开启的活动。
//creating intent
Intent resultIntent = new Intent(mContext, ResultActivity.class);
resultIntent.putExtra("update_request", true);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
//creating pending intent
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
mContext,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
//Build the notification using Notification.Builder
Notification.Builder builder = new Notification.Builder(mContext)
.setSmallIcon(R.drawable.icon)
.setAutoCancel(true)
.setContentTitle("Title")
.setContentIntent(resultPendingIntent) //adding pending intent
.setContentText("content");
NotificationManager mNotificationManager =
(NotificationManager)mContext.getSystemService(Context.NOTIFICATION_SERVICE);
//Get current notification
Notification mNotification = builder.getNotification();
//Show the notification
mNotificationManager.notify(NOTIFICATION_ID, mNotification);
现在,您可以对结果活动的protected void onNewIntent(Intent intent)
功能进行操作。
您还可以从setIntent(intent)
函数将新意图设置为活动的目标newIntent
。
答案 1 :(得分:0)
在待处理意图中使用PendingIntent.FLAG_UPDATE_CURRENT
标志来更新当前活动。然后在onResume()