Java 在Android中执行后台计划的重复任务,以及IntentService和Runnable之间的差异
我是一名iOS开发者,最近开始了Android开发。目前,我需要应用程序在后台对远程资源(JSON文件)执行重复检查,我希望:Java 在Android中执行后台计划的重复任务,以及IntentService和Runnable之间的差异,java,android,android-service,threadpoolexecutor,android-intentservice,Java,Android,Android Service,Threadpoolexecutor,Android Intentservice,我是一名iOS开发者,最近开始了Android开发。目前,我需要应用程序在后台对远程资源(JSON文件)执行重复检查,我希望: 应用程序已完成启动 在应用程序子类中启动计划的重复任务 如果远程JSON文件中有任何更改,应用程序将被注意到,并相应地进行处理 在做了一些研究之后,我发现似乎有很多方法可以实现这一点,虽然我可以排除其中一些方法,但我真的无法区分其他方法和我应该使用的方法之间的区别 我发现要执行计划的重复任务,可以使用以下类: ScheduledThreadPoolExecutor In
ScheduledThreadPoolExecutor
IntentService
AlarmManager
Runnable
(带有postInBackgroundDelayed
/DelayedRunnable
,或者可能是ScheduledExecutorService
?)ScheduledThreadPoolExecutor
,我已经了解到,当需要多个工作线程时,最好使用它,在我的情况下,我只需要一个工作线程AlarmManager
,即使应用程序未运行,也会执行此操作,而我只需要在应用程序运行时执行任务IntentService
和Runnable
:
IntentService
,需要手动启动和停止,通过向服务发送意图来调用任务,然后广播结果Runnable
,与Objective-C中使用的块一样,是在适当时间执行的特定代码段谢谢 要在Android中创建长时间运行的后台任务,您应该在应用程序中创建一个服务 服务在应用程序的主线程上执行,优先级最高的是活动,即使用户退出应用程序,服务也会继续运行 服务有以下类型:
- 启动服务
- 前台服务
- 绑定服务
- 意向服务