我正在编写一个使用我的 GPS 位置的 Android 应用程序。我的代码非常简单。
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
调用setHotColdLocation
.MyActivityThing
我的问题是,当用户按下按钮时,我应该如何确保设置位置?该onLocationChanged
方法不会立即调用,所以当应用程序第一次启动时,我可以按下按钮并导致异常......
在调用该位置之前,我应该使按钮不可见吗?我是否应该将内容包含setHotColdLocation
在 try catch 中并丢弃用户点击,直到设置位置?我可以想出很多方法让它发挥作用,但我不知道最好的方法……或者正确的方法。
有什么帮助吗?