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

问题描述 投票:-1回答:1

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

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

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

android
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.