在我的 IntentService 类的 onHandleIntent 中,我创建了包含一个可运行的句柄,该句柄应在 20 秒后完成。不幸的是,我的服务在此期间之前 sleep 或被破坏。 我也尝试过使用 CountDownTimer,但遇到了同样的问题。 有人知道我可以让 onHnadleIntent 等待吗?谢谢!
这是代码:
public class MyService extends IntentService {
//...
@Override
protected void onHandleIntent(Intent workIntent) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.i("20 seconds later","I am here");
}
}, 20000);
//...
}
//...
}
最佳答案
不要使用IntentService
。它不是为您的场景设计的。使用常规服务
。将代码放入 onStartCommand()
中。在 run()
方法的底部,对 Service
实例调用 stopSelf()
将其关闭。
关于android - 使 IntentService 在执行 handler.postDelayed runnable 之前不会休眠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407161/