Android – 即使应用程序未运行,也每15分钟运行一次后台任务

我需要构建一个每10/15分钟运行一次的后台任务(并不重要,或者是好的),即使应用程序没有运行也是如此。

我怎么能做到这一点? 我似乎无法绕过这个。

我读过我可以使用某种runnable()function或使用后台服务或AlarmManager。 我在考虑后台服务,因为它也必须在应用程序本身未运行时完成。

什么是更好的方法,我怎么能这样做?

你已经确定了执行一段代码的时间(间隔),最好使用AlarmManager,因为它更节能。 如果您的应用需要收听某种types的活动,那么服务就是您所需要的。

public static void registerAlarm(Context context) { Intent i = new Intent(context, YOURBROADCASTRECIEVER.class); PendingIntent sender = PendingIntent.getBroadcast(context,REQUEST_CODE, i, 0); // We want the alarm to go off 3 seconds from now. long firstTime = SystemClock.elapsedRealtime(); firstTime += 3 * 1000;//start 3 seconds after first register. // Schedule the alarm! AlarmManager am = (AlarmManager) context .getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 600000, sender);//10min interval } 

报警管理器(系统服务)与具有内部报警实施的远程服务(单独的流程)?

警报管理器是您的选择,因为它已经满足您的需求,您只需设置警报间隔即可

您也可以通过SyncAdapter实现这一目标。这里有一个示例供您查看并获得灵感

SyncAdapter示例

最好的方法是在Google I / O 2018 – WorkManager中引入的。

你可以在这里find文档。