我有一个服务,可以在HandlerThread
方法中为其创建Handler
和onCreate
。
处理程序在同一方法中用于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;
}