总是在后台运行一个线程/进程?

时间:2013-03-03 22:41:52

标签: android

此时我不是100%的Android生命周期。我想运行一个进程/线程,我不确定这里是否有正确的术语,手机一直处于打开状态,并且无需用户激活应用程序即可运行。对于我正在进行的游戏的一部分,我希望定期将用户粗略的位置传回服务器,并从服务器获取一些数据。在android中解决这个问题的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

你必须看看Android服务。 here你可以找到关于这个主题的好介绍。

另外,为了检测用户何时插入/拔出耳机,您必须使用BroadcastReceiver。这已成为关于此here的主题。

答案 1 :(得分:1)

如果此后台流程的工作量不仅仅是上传位置,那么@niculare的回答确实是正确的。

但是,如果这个后台进程唯一能做的就是上传,那么有更多的电池效率方法。您可以创建BroadcastReceiver以从系统接收位置更新并进行上传。如果您在上传之前需要一些小的处理,您甚至可以从BroadcastReceiver启动服务,那么服务将处理数据,上传完成。

同样对于这两种情况,您可能需要BroadcastReceiver才能接收OnBoot广播,知道手机刚刚启动,并注册这些内容。

小更新 您使用this method

注册this listener以获取位置更新