Android Intentservice没有';我不叫runnable
我在intent服务中有以下代码(我必须使用intentservice) 它不调用runnable,不显示日志,加速计接收器也未注销 我不知道为什么会这样。有人能帮我吗 我必须使用intentserviceAndroid Intentservice没有';我不叫runnable,android,accelerometer,runnable,intentservice,Android,Accelerometer,Runnable,Intentservice,我在intent服务中有以下代码(我必须使用intentservice) 它不调用runnable,不显示日志,加速计接收器也未注销 我不知道为什么会这样。有人能帮我吗 我必须使用intentservice //TIME HANDLER Log.i("start", "start getting data acc & gps"); //Register listeners and start getting data // // ACC: onSt
//TIME HANDLER
Log.i("start", "start getting data acc & gps");
//Register listeners and start getting data
//
// ACC:
onStartAcc();
//
handle_lower.postDelayed(new Runnable() {
@Override
public void run() {
Log.i("stop getting data", "STOP");
//Stop listeners
//
// ACC:
onStopAcc();
//==========================================================================
//HERE IS CALCULATING STATUS
//
status.calculateState();
//==========================================================================
}
}, Constants.TIME_ACCELEROMETER_GETTING);
对于此用例,您必须不使用IntentService
它不调用runnable,不显示日志,加速计接收器未注销
一旦onHandleIntent()
返回,IntentService
将关闭并离开。因此,您不能在IntentService
中注册侦听器、fork线程、使用实现不佳的计时系统等
欢迎您使用
服务
。将postDelayed()
内容转换为ScheduledExecutorService
(这样您的工作在后台线程上完成),并确保调用stopSelf()
在适当的时候关闭服务。一句话:我相信当内部消息中没有未决请求时,它会关闭queue@pskink:正确,但在这种情况下,这并不会真正改变IntentService
的适用性。