這可以通過ResourcesHolder
類從Android Hidden API library完成。雖然該庫專爲訪問內部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");
}
我沒有關於您的問題的答案,但是如果您可以自由地將代碼庫添加到代碼中,請查看EventBus(https://github.com/greenrobot/EventBus),它是爲使用而設計的類似你的情況。 –
不幸的是,我已經使用LocalBroadcastManager實現了它,因此無法開始使用它。 – JohnyTex