PendingIntent可以在应用程序之间传递,并且可以被其他应用程序使用,请列举一个场景,并且用代码的形式展示
时间: 2024-05-06 21:18:34 浏览: 60
一个常见的场景是在通知栏中点击通知跳转到其他应用程序的特定界面。
以下是一个示例代码,用于创建一个启动Activity的PendingIntent,并将其设置为通知的点击操作:
```java
// 创建启动Activity的Intent
Intent intent = new Intent(context, OtherAppActivity.class);
intent.putExtra("some_extra_data", "hello world");
// 创建PendingIntent,使用FLAG_UPDATE_CURRENT标志以更新任何现有的PendingIntent
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// 创建通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My Notification")
.setContentText("Click me to open Other App Activity")
.setContentIntent(pendingIntent)
.setAutoCancel(true);
// 显示通知
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
notificationManager.notify(notificationId, builder.build());
```
在上面的代码中,创建了一个启动`OtherAppActivity`的Intent,并在其中添加了一些额外的数据。然后,使用`PendingIntent.getActivity()`方法创建一个PendingIntent,该PendingIntent会在用户点击通知时启动`OtherAppActivity`。最后,将PendingIntent设置为通知的点击操作,并使用`NotificationManagerCompat.notify()`方法将通知发送到系统的通知栏中。
阅读全文