Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView专用广播接收机_Android_Broadcastreceiver_Listactivity - Fatal编程技术网

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

注册一个
?但是如果它是私有的,我不认为清单可以看到它,就把它改成公共的;然而,我的控制器类不能监听来自我的服务的广播消息。我已经知道如何用这种方式来做了。我希望列表活动使用内置接收器侦听更新。