registerReceiver()不使用Activity实例化的BroadcastReceiver

时间:2014-08-18 23:30:37

标签: android broadcastreceiver intentfilter

我做了一个课程,MediaButtonReceiver扩展了BroadcastReceiver。在我的活动onCreate()中,我实例化它,并将活动设置为通知的监听器:

IntentFilter intentFilter = new IntentFilter("android.intent.action.MEDIA_BUTTON");
intentFilter.setPriority(999);
MediaButtonReceiver mediaButtonReceiver = new MediaButtonReceiver();
mediaButtonReceiver.setListener(this);
getApplicationContext().registerReceiver(mediaButtonReceiver, intentFilter);

问题是,当按下媒体按钮时,它似乎实例化MediaButtonReceiver而不是使用我的活动创建的那个,因为它对活动的引用为空。

这就是我在清单中所拥有的:

    <receiver android:name="com.example.myapp.MediaButtonReceiver">
        <intent-filter android:priority="999">
            <action android:name="android.intent.action.MEDIA_BUTTON"></action>
        </intent-filter>
    </receiver>

我尝试从清单中删除接收器,但是当按下媒体按钮时应用程序永远不会收到信号。

我做错了什么?

由于

0 个答案:

没有答案