Android - 每隔30分钟获取一次该位置

时间:2013-05-23 18:41:58

标签: android

我知道这个问题已被多次询问,但我找不到符合我问题的答案。

我有一个应用程序,每30分钟必须知道用户的位置(为了做特定的事情)。 我不希望应用程序检查位置是否已更改。我只需要每30分钟一次,所以我不想使用onLocationChanged()方法

我使用“被动”方式,而不是gps或网络方式,所以我不需要“找到”最好的提供商,我已经知道了。

有办法吗?

非常感谢。

于连

1 个答案:

答案 0 :(得分:2)

您可以每30分钟设置一次警报并检查getLastKnownLocation。但是,如果至少有1个应用程序注册了位置更新,则最后一个已知位置才会主动更新 - 因此您仍需要注册自己以确保更新变量。

AlarmManager mgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
registerReceiver( receiver, new IntentFilter("broadcast reciever class name here") );
Intent i=new Intent("broadcast reciever class name here");
PendingIntent pi=PendingIntent.getBroadcast(this, 0, i, 0);
mgr.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 30*60*1000, pi);

这将每30分钟设置一次警报。如果您希望在活动停止后继续此操作,请将其设置为“服务”。