我的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>
答案 0 :(得分:0)
如果您在清单中定义BroadcastReceiver
,那么它必须是一个独立的类。即扩展BroadcastReceiver
。或者您可以使用registerReceiver
注册一个。