ListView私人广播接收器

时间:2012-03-11 23:02:34

标签: android broadcastreceiver listactivity

我的Controller类中有私有广播接收器。我试图让我的Controller类侦听广播消息但是我不断收到以下错误

java.lang.RuntimeException: Unable to instantiate receiver com.android.five.Controller: java.lang.ClassCastException: com.android.five.Controller

以下是我的设置。

private final BroadcastReceiver receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(TAG, "message recieved");
        Bundle bundle = intent.getExtras();
        if (bundle.getString("ARTIST") != null) {

            String artist_name = bundle.getString("ARTIST");
            String track_name = bundle.getString("TRACK");
            Log.d(TAG, artist_name);
            Log.d(TAG, track_name);
        }
    }
};

这是我的清单文件。

<activity          
        android:name=".Controller"
        android:label="@string/app_name"
        android:noHistory="true" >
        <intent-filter>
            <action android:name="com.android.five.services.SONG_CHANGE" />
        </intent-filter>
    </activity>

    <receiver android:name="com.android.five.Controller" >
        <intent-filter>
            <action android:name="com.android.five.services.SONG_CHANGE" />
        </intent-filter>
    </receiver>

1 个答案:

答案 0 :(得分:0)

如果您在清单中定义BroadcastReceiver,那么它必须是一个独立的类。即扩展BroadcastReceiver。或者您可以使用registerReceiver注册一个。