ボタンを押して場所の取得を開始すると、すぐにトースト メッセージが表示され、lat:0 lon:0 (初期化された値) が表示されます。
数秒後、ボタンをもう一度押して場所を取得する必要があり、場所が表示されます。
そのために何ができますか?
(私が理解しているように、遅延を使用しても問題は解決しません。場所を取得するまでトーストメッセージを待機させたい)
if(gps.canGetLocation()){
latitude = gps.getLatitude();
longitude = gps.getLongitude();
Toast.makeText(getApplicationContext(), "Your Location is \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
...
私はsthを次のように使用しました:
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();
}
また、場所が見つかるまで別のメッセージを表示する方法はありますか?