当您将 PendingIntent 对象传递给 AlarmManager.set 方法时,您可以将任何您想要的额外内容放入包裹在待处理意图中的 Intent 对象中。例如:
Intent intent = new Intent(getApplicationContext(), YourService.class);
intent.putExtra("someKey", someData);
intent.putExtra("anotherKey", anotherData);
PendingIntent pi = PendingIntent.getService(getApplicationContext(), REQUEST_CODE, intent, FLAGS);
alarmManager.set....
然后,当服务启动时,您会收到相同的意图对象:
public void onStartCommand(Intent data, int startId, int flags) {
int data1 = data.getExtra("someKey");
}
从您的服务启动活动时,您也可以这样做:
Intent activityIntent = new Intent(getApplicationContext(), YourActivity.class);
intent.putExtra("key", data1);
事实上,如果你在你的服务中没有做任何特别的事情,只是启动了活动,你为什么不在你的警报中为活动设置一个意图呢?