我想让我的应用程序在后台运行,就像一个始终运行的进程。
我需要它,因为我想每 2 分钟(经度、纬度)获取 GPS 位置更新,并在方法中使用该信息。
为此,我需要在手机处于睡眠状态或不在应用程序 UI 中时运行应用程序,换句话说,我需要该应用程序始终运行。
我确信有办法做到这一点,无论如何感谢任何答案:)
这只是我发现的第一个谷歌搜索结果: http ://www.vogella.com/articles/AndroidServices/article.html
这里的答案是使用服务,如果缺少本教程还有 64 亿其他人。
我们有这样的东西,但它是由几个部分组成的。
首先,您将希望您的代码运行(并在清单中注册)作为Service
您可能还需要请求android.permission.RECEIVE_BOOT_COMPLETED
,以便您可以编写和注册一个BroadcastReceiver
通过android.intent.action.BOOT_COMPLETED
操作获得通知的方法,并且它的onReceive
方法启动服务。
在我们的例子中,我们还有一个前端活动,它也会戳服务以确保它正在运行,但是我检查是否仍然需要它已经有一段时间了。
我们的服务几乎是空的,并onCreate
立即调用一个自定义Handler
,然后管理“滴答”,如果有工作要做,它会唤醒Handler
并触发一个Runnable
,但这是我的代码与你的不同的地方。在我们的例子中,我们只在服务“滴答”(通常是每分钟)并且有工作要做时才尝试更新 GPS 位置。它通常每天每个客户只执行几十次操作,所以我不能真正建议它如何影响电池使用。