Intentservice 不调用 runnable
Intentservice doesn't call runnable
我在意图服务中有以下代码(我必须使用 intentservice)
//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);
并且它不调用 runnable,不显示日志并且加速度计接收器未注销。
我不知道为什么会这样。有人可以帮助我吗?
I have to use intentservice
你必须不使用IntentService
这个用例。
it doesn't call runnable, no log is shown and accelerometer receiver is not unregistered
一旦 onHandleIntent()
returns,IntentService
就会关闭并消失。因此,您不能在 IntentService
.
中注册侦听器、fork 线程、使用实施不佳的计时系统等。
欢迎您使用Service
。将您的 postDelayed()
内容转换为 ScheduledExecutorService
(因此您的工作是在后台线程上完成的),并确保您在适当的时候调用 stopSelf()
来关闭服务。
我在意图服务中有以下代码(我必须使用 intentservice)
//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);
并且它不调用 runnable,不显示日志并且加速度计接收器未注销。
我不知道为什么会这样。有人可以帮助我吗?
I have to use intentservice
你必须不使用IntentService
这个用例。
it doesn't call runnable, no log is shown and accelerometer receiver is not unregistered
一旦 onHandleIntent()
returns,IntentService
就会关闭并消失。因此,您不能在 IntentService
.
欢迎您使用Service
。将您的 postDelayed()
内容转换为 ScheduledExecutorService
(因此您的工作是在后台线程上完成的),并确保您在适当的时候调用 stopSelf()
来关闭服务。