Частный вещательный приемник ListView - PullRequest
0 голосов
/ 12 марта 2012

У меня есть частный вещательный приемник внутри моего класса 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 голосов
/ 12 марта 2012

Если вы определили BroadcastReceiver в манифесте, то это должен быть отдельный класс. т.е. расширить BroadcastReceiver. Или вы можете зарегистрировать один с registerReceiver.

...