我想捕捉广播意图,然后将意图的详细信息转发给我的应用中的特定活动。
所以在我的清单文件中,我有这个:
<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));
}
}
我希望活动通过显式调用活动的intent接收keyEvent的action和keyCode。
有没有办法可以重复使用或克隆原始广播意图,在将其发送到活动之前尽可能地将其修改为最低限度?或者是否有类似的替代方案可用于整洁/良好实践方式将信息转发给活动?
我真正想要做的是最大限度地提高灵活性,例如,如果其中任何一个(IMO)不好的话:
我是否应该将第一个意图的动作,类别,数据和附加内容复制到第二个意图?我能/应该复制其他任何内容吗?
答案 0 :(得分:0)
尝试使用复制构造函数:
Intent activityIntent = new Intent(intent);
activityIntent.setClass(context, MainActivity.class);
context.startActivity(activityIntent);