2014-03-04 43 views
7

我的应用必须持续跟踪用户。为此,我有一个LocationListener应该不断地接收位置更新。问题是屏幕关闭时,它没有收到任何更新。Android屏幕锁定时未收到位置更新信息

我已经尝试添加一个局部唤醒锁:

mLocationRequest = LocationRequest.create(); 
     mLocationRequest.setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS); 
     mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     mLocationRequest.setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS); 
     mLocationClient = new LocationClient(ADS.getAppContext(), new LocationGatherer(), new LocationGatherer()); 
     mLocationClient.connect(); 
     PowerManager pm = (PowerManager) ADS.getAppContext().getSystemService(Context.POWER_SERVICE); 
     PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag"); 
     wl.acquire(); 

但它仍然没有收到更新。

+0

看一看[这里](http://stackoverflow.com/a/14478281/312312)它应该会帮助你 – Lefteris

回答

2

刚碰上同样的问题。我也有相同的代码,虽然它在一个服务。奇怪的是它没有工作。插在我的笔记本电脑和 跑Android app high CPU usage, no services or wakelocks提到的命令:

adb shell dumpsys power |grep -i wake 

突然,位置更新陆续抵达(电源按钮被按下,屏幕是关闭)。

我真的不知道可能是什么问题,但为我解决了这个问题。

截至目前,即使屏幕关闭,也可以接收位置更新。

+0

非常好的答案。 – peterh