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