Android ListView专用广播接收机
我的控制器类中有专用广播接收器。我正在尝试让我的控制器类监听广播消息,但是我一直收到以下错误Android ListView专用广播接收机,android,broadcastreceiver,listactivity,Android,Broadcastreceiver,Listactivity,我的控制器类中有专用广播接收器。我正在尝试让我的控制器类监听广播消息,但是我一直收到以下错误 java.lang.RuntimeException: Unable to instantiate receiver com.android.five.Controller: java.lang.ClassCastException: com.android.five.Controller 下面是我的设置 private final BroadcastReceiver receiver = new B
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>
如果您在清单中定义了一个BroadcastReceiver
,那么它本身必须是一个类。ie扩展广播接收器
。或者您可以使用registerReceiver
注册一个
?但是如果它是私有的,我不认为清单可以看到它,就把它改成公共的;然而,我的控制器类不能监听来自我的服务的广播消息。我已经知道如何用这种方式来做了。我希望列表活动使用内置接收器侦听更新。