【问题标题】:Best way to do a update every minute每分钟更新一次的最佳方法
【发布时间】:2013-05-16 09:33:14
【问题描述】:

我需要每分钟更新一次,通过检查 xml 来了解我是否需要更新。

我在某些方面犹豫不决,因为我还没有正确理解 android 上的服务

我可以做一个警报,每分钟启动一个活动我的活动需要成为接收器或服务?

我可以每分钟启动一项服务而不发出警报吗?

或者我需要在我的服务中创建一个循环,每分钟启动一个函数?

我可以(如果我使用警报并多次启动相同的活动/服务)保留一个变量以了解我是否需要更新我的意思是如果我需要在更新期间 dll 大文件它可能会超过 1 分钟,我不想同时启动多个更新,所以我需要使用布尔值来了解更新是否处于活动状态。

【问题讨论】:

  • 在 TIME_TICK 广播上注册一个广播接收器。它每分钟都会发生。

标签: android


【解决方案1】:

你不为回答我而战:P

我发现了什么。 我创建了一个更新类来扩展服务一个更新执行进行所有更新并退出服务该服务不会一直在后台运行 我将它加入到每 60 秒启动一次的警报管理器中 我的代码是这样的

Intent i = new Intent();
ComponentName comp = new ComponentName(getPackageName(),Update.class.getCanonicalName());
i.setComponent(comp);
PendingIntent pending = PendingIntent.getService(this, 0, i,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager amgr = (AlarmManager) getSystemService(ALARM_SERVICE);
amgr.setRepeating(AlarmManager.RTC, SystemClock.elapsedRealtime(),60000, pending);

我仍然不知道这是最好的方法还是最好的方法,但它确实有效。

【讨论】:

    【解决方案2】:

    我认为这是个好主意。我也是,我一直在寻找类似的解决方案。另一种方法是注册广播接收器以计时并将应用程序更新到特定时间(请参阅How to update an app widget on midnight?),但我认为您的解决方案在节省 CPU 资源方面是最好的。不要为 ACTION_BOOT_COMPLETED 注册 BR,它会重新启动您的更新服务。

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 2023-03-13
      • 1970-01-01
      • 2021-12-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多