1

我正在编写一个使用我的 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 中并丢弃用户点击,直到设置位置?我可以想出很多方法让它发挥作用,但我不知道最好的方法……或者正确的方法。

有什么帮助吗?

4

1 回答 1

0

另一种说法是,您的按钮可以启动最终设置位置的任务。

于 2013-08-16T03:56:40.483 回答