我正在将音频流服务绑定到Fragment
。
如何将percent
的{{1}}中的值MediaPlayer
从服务中获取到onBufferingUpdate
?
我正考虑从服务Fragment
发送Broadcast
意图,但这似乎有点矫枉过正。
有人可以帮忙吗?
服务
onBufferingUpdate
片段
public class StreamService extends Service implements OnBufferingUpdateListener,
OnInfoListener, OnPreparedListener, OnErrorListener {
private final IBinder mBinder = new StreamServiceBinder();
MediaPlayer mMediaPlayer;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
initMediaPlayer();
return START_STICKY;
}
@Override
public void onBufferingUpdate(MediaPlayer player, int percent) {
// how to send percent to my fragment?
}
public class StreamServiceBinder extends Binder {
StreamService getService() {
return StreamService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
/* ... */
}
答案 0 :(得分:0)
我会按照你的建议做,并使用LocalBroadcastManager
将内部更新发送回片段。
(http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html)
如果没有在服务中存储片段的引用,我不知道你会怎么做。