Android onCreate排序问题

时间:2013-05-16 20:42:11

标签: android google-maps-android-api-2

我正在尝试使用原始和目标gps坐标构建一个字符串,以便进行谷歌映射。我需要做的第一件事就是获取当前位置的gps坐标,因为这是原点。然后,我需要将这些坐标连接成一个更大的字符串,用于获取方向。

我有获取这些坐标的代码,以及将它们连接成正确字符串格式的代码。但是,我的问题是我的字符串构建代码正在运行第一个,由于字符串引用了尚未处理的gps坐标,因此留下了空指针问题。

在这里。 gotLocation()方法来自于实现post中的建议:

Public class DirectionsActivity extends Activity {

    String myLat, myLng;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Parser parser;

        LocationResult locationResult = new LocationResult(){
            @Override
            public void gotLocation(final Location location){
                try {
                    Double lat = location.getLatitude();
                    Double lng = location.getLongitude();
                    if (lat != 0.0 && lng != 0.0) {                      
                        myLat = Double.toString(lat);
                        myLng = Double.toString(lng);
                        String gps_location = myLat + " " + myLng;
                        Toast.makeText(getBaseContext(), "First Message", Toast.LENGTH_SHORT).show();
                    }
                }catch (Exception e) {

                }
            }
        };

        MyLocation myLocation = new MyLocation();
        myLocation.getLocation(this, locationResult);

        Toast.makeText(getBaseContext(), "Second Message", Toast.LENGTH_LONG).show();

        buildString();

        setContentView(R.layout.activity_directions);

    }

运行此时的toast输出是“Second Message”,后跟“First Message”。它们应该以相反的顺序显示。

1 个答案:

答案 0 :(得分:0)

获取位置是一种异步操作,您无法控制从系统获得答案的时间。

在吐司出现之前,您如何确定找到卫星或手机垫? :)