6

この例を使用して位置情報ベースのアプリを開発しています: http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

しかし、電話をオンにすると、その瞬間に場所が利用できなくなります。そのため、場所を待っている間に進行状況ダイアログを表示したいと思います。AsyncTask を使用してバックグラウンドでこれを行いたい。

どのように、どこでそれを行うのか、アイデアを教えていただけますか?

4

3 に答える 3

4

ロケーションサービスはすでに別のプロセスで実行されているため、AsyncTask は必要ありません。実装しLocationListenerて再開メソッドに登録するだけで、onCreateActivity でロケーションが null かどうかを確認し、ロケーションProgressDialogonLocationChanged()設定してロケーションを閉じます。ProgressDialog

于 2013-07-16T08:50:41.007 に答える
2

locationListner インターフェイスを実装し、待機ダイアログのオーバーライド onlocation change メソッドを開始すると、ダイアログがキャンセルされます。

public class MainActivity extends Activity implement LocationListener{

ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //-------------------- Start your GPS Reading ------------------ //
    dialog = new ProgressDialog(this);
    dialog.setMessage("Please wait!");
    dialog.show();

}
@Override
public void onLocationChanged(Location arg0) {
    dialog.dismiss();
}

@Override
public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}
于 2013-07-16T10:06:44.583 に答える
2

ProgressDialog を onPreExecute に配置します。サンプル コードは次のとおりです。

private ProgressDialog progressdialog;

@Override
protected void onPreExecute(){ 
   super.onPreExecute();
        progressdialog = new ProgressDialog(yourContext);
        progressdialog.setMessage("Loading...");
        progressdialog.show();    
}

@Override
protected void onPostExecute(){
   super.onPostExecute();
        progressdialog.dismiss();
}
于 2013-07-16T08:51:00.000 に答える