android - StopService 或删除处理程序回调(电池消耗)

标签 android service handler battery

我有一个 android 服务,即使 Activity 关闭也需要运行!

如果屏幕OFF,该服务不需要做任何事情。

如果屏幕ON,服务开始工作!

所以我的问题是,最好是删除所有处理程序回调(保持服务)或停止整个服务并在屏幕打开时再次启动服务?

谢谢!

最佳答案

原则上,如果不需要,最好停止所有正在运行的服务。

从电池消耗方面-运行Service本身对电池消耗没有任何重大影响,但只要您的服务仍然存在 - 您的整个过程仍然存在 - 这意味着您的应用程序仍在消耗 RAM 量,并被视为“正在运行”。假设您的应用程序正在运行这一事实本身不会对电池生命周期产生影响。

但是(还有一个很大的但是)

您在服务中所做的事情很重要,并且可能对电池生命周期产生巨大影响。

根据你的问题,我可以假设你在某个时间间隔内执行一些代码,因此 - 你在每次执行时消耗 CPU 时间,甚至更糟 - 执行网络请求/执行 IO 文件操作等等。经常执行此类操作 could drain very fast the battery ,你应该尽可能避免它们。

因此,如果您从我提到的操作中执行一个或多个操作 - 最好不要在屏幕关闭时执行它们,而且不仅要忽略它们的回调...

我建议您也观看整个视频 - http://www.youtube.com/watch?v=OUemfrKe65c

它会让你了解整个画面......

关于android - StopService 或删除处理程序回调(电池消耗),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22379292/

相关文章:

android - 如何确保特定 xml 中的每个字符串都被翻译成 Android 中的另一个 xml?有什么好的做法吗?

python - 使用哪个工具包来开发Mac OSX/Windows Daemon服务

android - 在 Handler 和 Thread Widget 中设置 TextView

asp.net - 在 asp.net 处理程序中访问 session

jquery - jquery 中的一键多次点击处理程序

android - 使用与旧 Android 版本兼容的文件提供程序 list

android - Firebase 推送通知不起作用

android - React native 是否支持与 Android auto 集成

c++ - W8 服务的连接待机通知

service - 不可用 XRMServices/2011/Organization.svc