[英]How to forward broadcast Intent from BroadcastReceiver to app's activity (Convert broadcast intent to explicit intent)
我想捕獲一個廣播意圖,然后將該意圖的詳細信息轉發到我的應用程序中的特定活動。
所以在清單文件中,我有這個:
<receiver android:name="uk.floriansystems.carplayer.MediaButtonReceiver">
<intent-filter android:priority="999">
<action android:name="android.intent.action.MEDIA_BUTTON"></action>
</intent-filter>
</receiver>
BroadcastReceiver是這樣的:
public class MediaButtonReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
KeyEvent keyEvent = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
int keyEventKeyCode = keyEvent.getKeyCode();
int keyEventAction = keyEvent.getAction();
// I want to pass the above integers to my Activity, within the Intent
// created below, in a tidy way:
context.startActivity(new Intent(context, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
}
我希望活動通過顯式調用活動的意圖接收keyEvent的操作和keyCode。
有沒有一種方法可以重用或克隆原始廣播意圖, 並在將其發送到活動之前對其進行盡可能小的修改? 還是有類似的替代方法來將信息傳遞給活動的整潔/良好實踐方法?
我真正想做的是最大程度地提高靈活性,例如,如果滿足以下任一條件,則(IMO)不好:
我是否應該僅將行動,類別,數據和其他內容從第一個意圖復制到第二個意圖? 還有其他我可以/應該復制的地方嗎?
嘗試使用復制構造函數:
Intent activityIntent = new Intent(intent);
activityIntent.setClass(context, MainActivity.class);
context.startActivity(activityIntent);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.