不使用时停止小部件的服务

时间:2010-06-03 07:15:06

标签: android

我无法让我的小部件停止占用这么多资源。

我setRepeating在AlarmManager上更新。删除小部件时(onDisabled()),我在服务上调用.cancel(),但服务仍显示在android“运行进程”中,让我相信我做错了什么。有什么指导吗?

另外,我应该在onEnabled()或onUpdate()中安排我的更新吗? onUpdate似乎不适用于第一个小部件以外的任何内容。

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

最佳做法是在服务完成之后停止服务,而不是在停止之前删除小部件。

你应该让它对小部件进行更新,然后调用stopSelf();如果您将AlarmManager设置为再次启动服务,这应该不是问题。

关于onUpdate。您必须在widgetconfig XML文件中设置窗口小部件更新的频率。从Android 1.6开始,我相信最短的更新时间为30分钟。 (如果您需要更频繁地进行更新,那么警报管理器是您最好的选择。)onUpdate将传递一组窗口小部件ID,您需要遍历它们以获取所有窗口小部件。