1

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

我在某种程度上犹豫不决,因为我还没有正确理解 android 上的服务

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

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

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

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

4

2 回答 2

0

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

于 2013-10-12T15:54:24.103 回答
0

你不为回答我而战: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);

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

于 2013-05-22T07:20:17.803 回答