如何使用服务类的广播接收器更新Recyclerview?

时间:2017-12-27 09:10:33

标签: android

我正在开发音乐播放器应用程序,我已经使用服务类包括Play,Pause,next和Previous曲目等基本功能。

现在我想根据用户点击的操作更新我的recyclerview用户界面(例如:在游戏中,recyclerview中应该有所选元素的图像。)

我想使用广播接收器,服务类将在不同的动作上广播,然后recyclerview可以根据广播动作进行更新。但是我该如何添加这样的功能呢?

1 个答案:

答案 0 :(得分:0)

您需要一个活动广播接收器。此类接收器在您的活动显示时进行注册,一旦隐藏就取消注册。

public class MainActivity extends Activity {

    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // Here update your RecyclerView
        }
    };

    @Override
    protected void onResume() {
        super.onResume();
        IntentFilter filter = new IntentFilter(YourService.YOUR_CUSTOM_ACTION);
        registerReceiver(mReceiver, filter);
    }

    @Override
    protected void onPause() {
        super.onPause();
        unregisterReceiver(mReceiver);
    }
}

在您的服务中,只需发送广播:

Intent intent = new Intent(YOUR_CUSTOM_ACTION);
// put extras in the intent as you wish
sendBroadcast(intent);