Android 延迟动作与广播接收机
在这种情况下,我必须在电源连接到设备后N秒启动一些非UI操作。用户也可以通过UI启动该操作 我有一个在AndroidManifest.xml中定义的BroadcastReceiver,它监听连接的动作 我有一个服务,它在启动命令时执行所需的操作。我的问题是-当广播触发动作时,启动该服务的正确方式是什么 我有两个选择:Android 延迟动作与广播接收机,android,service,timer,broadcastreceiver,timertask,Android,Service,Timer,Broadcastreceiver,Timertask,在这种情况下,我必须在电源连接到设备后N秒启动一些非UI操作。用户也可以通过UI启动该操作 我有一个在AndroidManifest.xml中定义的BroadcastReceiver,它监听连接的动作 我有一个服务,它在启动命令时执行所需的操作。我的问题是-当广播触发动作时,启动该服务的正确方式是什么 我有两个选择: 一次性计时器任务。然而,我认为这可能是错误的,因为根据文档,我无法从BroadcastReceiver启动任何异步任务 重新设计服务: 如果操作是由用户触发的,则在启动命令时启动
- 如果操作是由用户触发的,则在启动命令时启动操作
- 启动计时器任务并在计时器快照时执行操作-与1中的逻辑相同。但内部服务-如果行动是由广播触发的
TimerTask
不会有帮助
作为替代解决方案,使用及其功能来计划挂起的服务意图。这可能是您的最佳解决方案。正确的方法是#2。这是因为一旦您离开onReceive,应用程序进程可能会被终止。在这种情况下,您的TimerTask
不会有帮助
作为替代解决方案,使用及其功能来计划挂起的服务意图。这可能是您的最佳解决方案