Example #1
0
  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
    if (intent != null && intent.getAction() != null && ACTION_PAUSE.equals(intent.getAction())) {
      pause();
    } else {
      final Message msg = serviceHandler.obtainMessage();
      msg.arg1 = TWO_WAY_SYNC;
      serviceHandler.sendMessage(msg);
    }

    // If we get killed, after returning from here, restart
    return START_STICKY;
  }
 public void startSync(final DmrDevice device, final OnDeviceStateChangeListener listener) {
   if (handlers.containsKey(device.getUdn())) {
     return;
   }
   HandlerThread thread = new HandlerThread(String.valueOf(System.currentTimeMillis()));
   thread.start();
   Handler actionHandler = new Handler(thread.getLooper());
   // 如果当前线程没有Looper,需要创建Looper对象
   if (Looper.myLooper() == null) {
     Looper.prepare();
     SyncHandler handler = new SyncHandler(Looper.myLooper(), device, listener, actionHandler);
     handlers.put(device.getUdn(), handler);
     handler.start();
     Looper.loop();
   } else {
     SyncHandler handler = new SyncHandler(Looper.myLooper(), device, listener, actionHandler);
     handlers.put(device.getUdn(), handler);
     handler.start();
   }
 }
Example #3
0
 @Override
 public void onChange(boolean selfChange, Uri uri) {
   handler.onMonitorChange();
 }
 public void stopSync(final DmrDevice device) {
   SyncHandler handler = handlers.get(device.getUdn());
   if (handler == null) return;
   handler.stop();
   handlers.remove(device.getUdn());
 }