线程不执行Handler在Service onStartCommand中发布的Runnable

时间:2013-10-26 21:11:48

标签: java android multithreading service

我有一个服务,可以在HandlerThread方法中为其创建HandleronCreate。 处理程序在同一方法中用于post Runnable,该方法在预期的后台线程上正常执行。 在服务的onStartCommand上,处理程序用于发布不同的Runnable,并正常退出。

问题是Runnable方法中发布的onStartCommand从未被调用过。

@Override
public void onCreate() {
  super.onCreate();
  HandlerThread thread = new HandlerThread("BackgroundThread");
  thread.start();
  Looper looper = thread.getLooper();
  handler = new Handler(looper);
  handler.post(new Runnable() {
      @Override
      public void run() {
          methodThatGetsExecuted();
      }
  });
}

@Override
public int onStartCommand(final Intent intent, int flags, int startId) {
  handler.post(new Runnable() {
    public void run() {
      methodThatNeverGetsCalled();
    }
  });
  return START_REDELIVER_INTENT;
}

0 个答案:

没有答案