Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android服务的持续时间与手机使用事件监听器的时间一样长_Android - Fatal编程技术网

Android服务的持续时间与手机使用事件监听器的时间一样长

Android服务的持续时间与手机使用事件监听器的时间一样长,android,Android,我有一个前台服务,它有一个线程。该线程实现一些从Internet和传感器触发的事件侦听器。 该应用程序应该一直运行到手机打开为止。 在不耗尽电池的情况下构建此应用程序的最佳方法是什么? 我正在寻找一项服务的最佳实践,该服务可以一直运行,监听来自Internet和传感器的事件,而不是应该完成的任务。使用服务器解决方案监听Internet上的内容,并在发生事情时向您的应用程序发送Google云消息推送通知 理想情况下,您的服务不需要一直打开等待通知,Android默认情况下已经在侦听传入的Googl

我有一个前台服务,它有一个线程。该线程实现一些从Internet和传感器触发的事件侦听器。 该应用程序应该一直运行到手机打开为止。 在不耗尽电池的情况下构建此应用程序的最佳方法是什么?
我正在寻找一项服务的最佳实践,该服务可以一直运行,监听来自Internet和传感器的事件,而不是应该完成的任务。

使用服务器解决方案监听Internet上的内容,并在发生事情时向您的应用程序发送Google云消息推送通知

理想情况下,您的服务不需要一直打开等待通知,Android默认情况下已经在侦听传入的Google云消息,这样您就不会在等待此类事件的电池消耗中再添加任何内容

Android是一个基于事件的系统,它可以为你减少对后台服务的需求做很多类似的事情。因此,Android没有让许多守护进程在后台循环等待,而是只有一个系统实用程序可以完成所有这些工作,并且可以在正确的时间启动您的服务


在您这边,您只需要注册侦听这些事件的权限,并告诉系统在触发传入事件的正确组合时,您希望触发哪些代码

如果您的服务是从startForeground开始的,那么您已经在做最好的方法了蓄电池耗电情况如何?用于收听传感器和互联网。哪些传感器会收听?为什么呢?我问这个问题的原因是,一些最新的手机在不使用电池的情况下,对计步器事件和其他传感器的支持要好得多,这会在其他设备上很快耗尽电池电量。主要是加速计,我甚至在屏幕关闭时也在听。我都知道。但这在我的情况下是不必要的。我使用XMPP作为后端。