2014-07-10 36 views
0
try 
{ 
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    provider = locationManager.getBestProvider(criteria, false); 
    Location location = locationManager.getLastKnownLocation(provider); 
    // Initialize the location fields 
    if (location != null) 
    { 
     onLocationChanged(location); 
    } 
} 
catch(Exception e) 
{} 

嗨,大家好,爲什麼Android在空閒時間過長後會丟失位置?

我從我上面的代碼中使用getLastKnownLocation獲得對GP值()。

問題是getLastKnownLocation()在長時間空閒後很少(或)有時(或)返回null。沒有提供商或網絡問題。所有必需的權限都在清單中聲明。

無法找到解決此問題(即)用正確值替換空值的解決方案。

重新啓動手機時,getLastKnownLocation()返回正確的值。但這不能被接受爲每一次的解決方案。

不知道爲什麼移動設備正在失去其位置以及何時恢復其位置。

我正在開發一個完全依賴於當前位置的應用程序。

如何解決此問題或其他備用方法可用於避免此問題?

回答

0

Docs說null可以返回,當供應商處於離線狀態時。也許你的代碼選擇禁用的提供者?如果你需要精確的位置,最好使用GPS開啓你自己的位置監聽器(如果它可用 - 如果不可用,你可以將用戶移動到設置屏幕打開GPS)。您還可以驗證lastKnownLocation是不是太舊(當然如果它不爲空),將它用作起點。

相關問題