我有一项在 2 部手机中执行的服务。它们使用套接字相互通信并执行一些脚本(可能需要大约 1-2 分钟)并在它们之间交换文件(使用 HTTP Post)。
我希望这个执行继续,即使屏幕关闭,即获取唤醒锁。我看到了这个链接,但我不确定将它合并到我的代码中的哪个位置(因为设备可能会在执行过程中休眠)。非常感谢任何指导。谢谢你。
我有一项在 2 部手机中执行的服务。它们使用套接字相互通信并执行一些脚本(可能需要大约 1-2 分钟)并在它们之间交换文件(使用 HTTP Post)。
我希望这个执行继续,即使屏幕关闭,即获取唤醒锁。我看到了这个链接,但我不确定将它合并到我的代码中的哪个位置(因为设备可能会在执行过程中休眠)。非常感谢任何指导。谢谢你。
我在 2 部手机上使用相同的应用程序。在 onCreate() 中,它启动一个侦听端口的服务。单击 phone1 中的按钮,将文件的 HTTP Post 发送到 phone2 并且通信继续进行(因为电话 2 最初也在端口上侦听)。
好吧,您的主要目标似乎是让 phone2 的所有者用弯刀攻击您,因为 phone2 将耗尽电池。
话虽如此,您的 HTTP 守护程序将需要在一个服务中,您可以在其中获取和发布 a WakeLock
(并且可能是 a WifiLock
,因为您想要的内容在大多数移动数据连接上都不起作用)。
WakefulIntentService
在这里没有用,因为它是为明智的场景设计的,在这种场景中,我们WakeLock
只需要在很短的时间内保持获得的内容,以完成一些特定的任务。在你的情况下,你需要WakeLock
无限期地保留你获得的东西,因为你不知道什么时候可能需要完成工作。
我不确定将其合并到我的代码中的哪个位置。
在服务中,大概。您可能会获得服务的WakeLock
inonCreate()
并在服务中释放它onDestroy()
。如果您希望避免与弯刀相关的消亡,您将确保用户对服务运行的确切时间有充分的控制权,因此对何时WakeLock
生效有充分的控制权。
为什么不使用服务实现该功能?见这里。我在 android 开发方面不是很有经验,但最近在一个项目中工作过,其中使用服务实现了类似的功能。