当我按下按钮开始获取位置时,立即出现 toast 消息并显示 lat:0 lon:0 (初始化值)。
几秒钟后,我必须再次按下按钮以获取位置,然后它会显示位置。
我能为此做些什么?
(据我了解,如果我使用延迟并不能解决问题。我希望 toast 消息等到我得到位置)
if(gps.canGetLocation()){
latitude = gps.getLatitude();
longitude = gps.getLongitude();
Toast.makeText(getApplicationContext(), "Your Location is \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
...
我用过类似的东西:
private void showToast() {
new Thread() {
public void run() {
try {
while (message) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if(gps.canGetLocation()){
latitude = gps.getLatitude();
longitude = gps.getLongitude();
Toast.makeText(getApplicationContext(), "Your Location is \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
message=false;
}else{
gps.showSettingsAlert();
}
});
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
但这似乎不起作用。另外,有没有办法在找到位置之前显示另一条消息?