从服务更新搜索栏

时间:2015-10-18 17:23:01

标签: android service seekbar audio-player android-music-player

我正在构建一个音乐播放器,我需要为这些歌曲添加一个搜索栏。我已经在网上查了一下,但大部分结果都是针对媒体播放器,而不是服务。我是新手使用媒体播放器,因此非常感谢任何详细的结果。

1 个答案:

答案 0 :(得分:1)

您可以使用广播接收器将数据从服务发送到活动。

在服务中添加以下方法,并在您想要更新SeekBar时调用此方法。

public static void publishResult(Context context, int percentage){
    Intent intent = new Intent("Broadcast");
    intent.putExtra("INTENT_TYPE", "SEEKBAR_RESULT");
    intent.putExtra("PERCENTAGE", 10);
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}

在活动中添加以下代码接收广播消息。

 @Override
    public void onResume() {
        super.onResume();
        //Register Broadcast receiver 
        LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mBroadcastReceiver, new IntentFilter("Broadcast"));
    }

    @Override
    public void onPause() {
        super.onPause();
        //Unregister Broadcast receiver
        LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mBroadcastReceiver);
    }

    private BroadcastReceiver mBroadcastReceiver= new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String intentType = intent.getStringExtra("INTENT_TYPE");
            if(intentType.equalsIgnoreCase("SEEKBAR_RESULT")){
                int percentage = intent.getIntExtra("PERCENTAGE");
            }
        }
    };

有关LocalBroadcastManager的更多详细信息,请参阅:http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html