Java Android应用程序如何在手机启动时延迟服务启动

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

嗨 当我的应用程序完成启动操作时,它将启动一项服务。 我想推迟60秒。 我可以在下列情况下这样做:

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);