【发布时间】:2011-09-25 05:18:33
【问题描述】:
我想知道您可以通过哪些编程方式来最大程度地减少您的服务在设备上的占用空间?您编写服务的方式是否有任何特殊技巧,以便它不会占用太多系统内存?我想低内存占用是我主要关心的问题,因此用户不想关闭服务并愿意让它一直运行。
***编辑***
好的,所以阅读答案我认为我一定做错了。我正在使用 AlarmManager 定期唤醒服务,但除非用户通过主要活动指示,否则我不会停止服务。所以应该在我的服务执行了我应该调用 stopService 所需的操作之后,我在 onStartCommand 的末尾添加了它?不会停止服务调用 onDestroy,因为如果它停止了,我会在 onDestroy 中注销我的 AlarmManager。
当我在手机上运行服务时,它现在运行的方式是运行服务,但它实际上并没有做任何事情,直到 AlarmManager 关闭,此时它执行它的小功能,仅此而已。
【问题讨论】:
-
它需要一直运行吗?可以只在需要的时候使用AlarmManager或者监听Broadcast来启动服务吗?你的服务是做什么的?
-
很少有需要“始终运行”的服务的情况,这甚至都不好笑。服务要么是@alextsc 指示的任务,要么是用户为前台的东西(例如,音乐播放器)启动和停止的东西。除非您能说服我们您的服务需要“始终运行”有明确的技术原因,否则我建议您避免这样做。
-
我编辑了我的原始问题以解决到目前为止的 cmets 和答案。
-
另外,是不是有一些服务在 Android 上“持续”运行?
标签: java android optimization android-service