这可以通过Android Hidden API libraryResourcesHolder
中的类来完成。尽管该库是为访问内部 API 而设计的,但发送任何对象是其能力之一。看这个例子:
ResourcesHolder holder = new ResourcesHolder()
// you also able to put multi-object, but give each of them different 'key'
.put("pi1", myPendingIntent1)
.put("pi2", myPendingIntent2);
// send via context.sendBroadcast(intent)
holder.sendBroadcast(context, "myKey");
// or send via LocalBroadcastManager
holder.sendViaLocalBroadcastManager(context, "myKey");
// don't forget to register your receiver with IntentFilter ResourcesHolder.ACTION_SEND_RESOURCES_HOLDER
在你的BroadcastReceiver
:
// to get them back:
if (intent.getAction().equals(ResourcesHolder.ACTION_SEND_RESOURCES_HOLDER){
ResourcesHolder holder = intent.getParcelableExtra("myKey");
PendingIntent pi1 = (PendingIntent) holder.getAsObject("pi1");
PendingIntent pi2 = (PendingIntent) holder.getAsObject("pi2");
}