我正在編寫使用我的GPS位置的Android應用程序。我的代碼非常簡單。適用於Android的設計模式 - 確保設置GPS位置
public class MyActivityThing extends Activity {
Location l;
MyLocationListener locationListener;
LocationManager locationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, locationListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.car, menu);
return true;
}
public void setHotColdLocation(View view)
{
l = locationListener.getCurrentLocation();
}
}
這裏是我的MyLocationListener
public class MyLocationListener implements LocationListener {
private static Location thelocation;
@Override
public void onLocationChanged(Location location) {
thelocation = location;
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
public Location getCurrentLocation()
{
return thelocation;
}
}
我的情況是這樣的。我有一個按鈕onClick
在MyActivityThing
中調用setHotColdLocation
方法。
我的問題是,我應該如何確保用戶按下按鈕時的位置? onLocationChanged
方法不會立即調用,所以當應用程序第一次啓動時,我可以按下按鈕,並導致異常....
我應該讓該按鈕不可見,直到該位置被調用? 我是否應該將setHotColdLocation
的內容放在try catch中並丟棄用戶點擊直到設置位置? 我可以想出很多方法來使其工作,但我不知道最好的一個......或者是正確的。
任何幫助?
爲什麼不只是在一個空檢查? = – nedaRM