}
MessageHandler holder = new MessageHandler(handler.getLooper(), cb);
mCallbacks.add(holder);
+ holder.mRegistered = true;
if (!mCbRegistered) {
try {
if (cb == handler.mCallback) {
mCallbacks.remove(i);
success = true;
+ handler.mRegistered = false;
}
}
if (mCbRegistered && mCallbacks.size() == 0) {
private final static class MessageHandler extends Handler {
private final MediaController.Callback mCallback;
+ private boolean mRegistered = false;
public MessageHandler(Looper looper, MediaController.Callback cb) {
super(looper, null, true);
@Override
public void handleMessage(Message msg) {
+ if (!mRegistered) {
+ return;
+ }
switch (msg.what) {
case MSG_EVENT:
mCallback.onSessionEvent((String) msg.obj, msg.getData());