当前位置: 首页 > 面试题库 >

如何计划在android中执行某些代码,或者:android中的守护进程线程到底是什么?

戚奇略
2023-03-14
问题内容

我目前正在为android os开发一个应用程序,该应用程序需要不时从远程服务器获取数据。

因为即使在实际的前端应用程序未运行时也应执行此“更新”,所以我实现了在系统启动时启动的远程服务。现在我需要安排一个计时器来开始更新。

“计时器”级适合此工作吗?并且如果为“是”:“正常” Timer()与由Timer(true)作为“守护程序”启动的Timer()有什么区别?

http://developer.android.com/reference/java/util/Timer.html在此方面不是很有帮助:(

编辑:

好的-我看到有比我预期更多的方法。澄清:

  • 我想在指定的时间执行一些代码。
  • 该计时器用于在未来7天触发代码执行。(即,在给定的工作日和时间的每周)
  • 如果手机处于“睡眠”状态(屏幕变暗),则代码应在不唤醒手机的情况下运行。
  • 运行代码时,不应启动任何活动。即没有应用程序在屏幕上弹出。
  • 执行的代码应从互联网获取一些数据。如果此时没有可用的互联网连接,则应将计时器设置为30分钟,然后再试一次。
  • 完成代码执行后,将为下一个间隔设置计时器,该间隔为7天。
  • 计时器应在系统启动时启动,例如,如果我重新启动手机,则计时器应确定下一个执行代码的日期并安排计时器。必须在没有任何用户交互的情况下工作!
  • 当“睡眠”时,线程/服务/计时器/任何东西都不应该在可能的情况下消耗任何系统资源…

  • 我需要的几乎是一个简单的unix cronjob。

我认为这里有人知道适用于Android的“ newsrob”吗?我想实现的功能与newsrob-updateservice几乎相同。


问题答案:

使用AlarmManager。这使您可以设置时间表,然后退出组件。您的代码不需要保留在内存中,并且会在警报响起时触发。

我实现了在系统启动时启动的远程服务

请不要仅针对预定任务执行此操作。使用AlarmManager

如果您希望在手机处于睡眠状态时完成工作,则需要使用_WAKEUP闹铃类型,并可能使用诸如my之类的方法WakefulIntentService来使设备在工作完成时保持唤醒状态。



 类似资料:
  • 维基百科中守护进程的解释 守护进程是一个运行后台进程, 非交互式用户直接控制的在计算机程序 Gradle 守护进程是一个后台进程, 它运行着繁重的构建, 然后在构建等待下一次构建的之间保持自身存在. 这使得数据和代码在下一次构建前已经准备好,并存入内存中. 这显著的提高了后续构建的性能. 启用Gradle守护进程是一种节约构建时间的廉价方式. 强烈建议在所有开发机器上启用Gradle的守护进程.但

  • 问题内容: Java中的守护程序线程是什么? 问题答案: 守护程序线程是在程序完成但线程仍在运行时不会阻止JVM退出的线程。守护程序线程的一个示例是垃圾回收。 你可以使用该方法在线程启动之前更改守护程序属性。

  • 本文向大家介绍什么是Java中的守护程序线程?,包括了什么是Java中的守护程序线程?的使用技巧和注意事项,需要的朋友参考一下 Java中的守护程序线程是在后台连续执行的线程。您可以使用setDaemon()方法设置线程守护程序。 示例 输出结果

  • 本文向大家介绍python实现守护进程、守护线程、守护非守护并行,包括了python实现守护进程、守护线程、守护非守护并行的使用技巧和注意事项,需要的朋友参考一下 守护进程 1、守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allow

  • 问题内容: 我有一个查询,就是我在多个线程下面开发了一个代码,这些线程分别称为线程一和线程二,下面是代码.. 类multip实现Runnable { 现在,我希望将线程2设置为守护程序线程,它应该为线程1提供某种服务,它可以是任何类型的服务,但最后我试图实现的是,守护程序线程向非守护程序线程提供某种服务。请告知如何实现。问题是有关守护程序线程将如何向非守护程序线程提供服务的问题。 问题答案: 问题

  • 问题内容: 这里有人在Golang中编写了守护进程吗?你能指导我如何做吗?欢迎有用的链接。 问题答案: 是的,这已经完成。请参阅go-daemon项目。请注意,启动goroutine 后 在守护进程中发生某些问题。有关详细信息,请参见问题227。 目前,我建议您使用操作系统提供的实用程序。