从服务更新搜索栏

Updating seekbar from Service

我正在构建一个音乐播放器,我需要为歌曲添加一个搜索栏。我在网上查过,但大多数结果都是针对 activity 中的媒体播放器,而不是服务。我不熟悉使用媒体播放器,因此非常感谢任何详细的结果。

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

在服务中添加以下方法,并在需要更新时调用此方法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);
}

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

 @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