Java Android应用程序如何在手机启动时延迟服务启动
嗨 当我的应用程序完成启动操作时,它将启动一项服务。 我想推迟60秒。 我可以在下列情况下这样做:Java Android应用程序如何在手机启动时延迟服务启动,java,android,delay,Java,Android,Delay,嗨 当我的应用程序完成启动操作时,它将启动一项服务。 我想推迟60秒。 我可以在下列情况下这样做: public class StartAtBootServiceReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { // Delay...60sec } } 使用Timer()和TimerT
public class StartAtBootServiceReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
// Delay...60sec
}
}
使用Timer()
和TimerTask()
:
当您收到BOOT_COMPLETED意图时,您应该使用设置一个挂起的意图,该意图将在60秒后触发。谢谢您尝试,Prashast也在谈论AlarmManager。什么是最好的?对于这样一个简单的延迟,AlarmManager是一个开销。它用于更复杂的情况。Android文档声明“在考虑阻止接收器和杀死候选人之前,系统允许有10秒的超时时间”。因此,在onReceive中使用计时器可能不可靠。我会和经理一起去!澄清一下——当然,调度是即时的,onReceive很快结束,但是接收方对象必须保留在内存中,TimerTask才能工作。但由于离开onReceive后,系统可能会释放接收方对象,所以不应该使用它。
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//run your service
}
}, 60000);