This question already has an answer here:
Obtain Android GPS location once every few minutes
(1个答案)
6年前关闭。
我知道这个问题已经被问过很多次了,但是我找不到适合我问题的答案。
我有一个应用程序,它必须每30分钟知道一次用户的位置(以便执行特定操作)。我不希望应用程序检查位置是否已更改。我只需要每30分钟获取一次,所以我不想使用onLocationChanged()方法。
我使用“被动”方式而不是gps或网络方式,因此我不必“寻找”最佳提供商,我已经知道了。
有办法吗?
非常感谢。
朱利安
这将每30分钟设置一次警报。如果您希望在活动结束后继续执行此操作,请在“服务”中进行设置。
(1个答案)
6年前关闭。
我知道这个问题已经被问过很多次了,但是我找不到适合我问题的答案。
我有一个应用程序,它必须每30分钟知道一次用户的位置(以便执行特定操作)。我不希望应用程序检查位置是否已更改。我只需要每30分钟获取一次,所以我不想使用onLocationChanged()方法。
我使用“被动”方式而不是gps或网络方式,因此我不必“寻找”最佳提供商,我已经知道了。
有办法吗?
非常感谢。
朱利安
最佳答案
您可以每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分钟设置一次警报。如果您希望在活动结束后继续执行此操作,请在“服务”中进行设置。