0

私のアプリケーションは、進行状況ダイアログを使用して、位置リスナーが現在現在の座標を検索していることをユーザーに知らせます。

ProgressDialog searching;

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

locationListener = new GPSLocationListener();

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
            0, locationListener);

searching = ProgressDialog.show(this, null, "Gaining GPS posistion...",  false,true);

これは素晴らしいことですが、これを実行できる時間制限を設定したいと思います。たとえば、20 秒に設定された単純な Thread.Sleep 静的インスタンスを使用できますか? これにより、位置オブジェクトがまだ null であるかどうかがチェックされ、検索がキャンセルされますか?

Location Listener と thread.sleep の両方を同時に実行できますか? Thread.Sleep に関する Oracle のメモを確認しましたが、まだ 100% 確実ではありません。

4

1 に答える 1

0

たとえば、20 秒に設定された単純な Thread.Sleep 静的インスタンスを使用できますか?

それは悲惨なことです。Android のメイン アプリケーション スレッドでは使用しないでください。呼び出しが設定されているsleep()間、UI がフリーズします。sleep()

20 秒でアクティビティをコントロールするためのより良い方法はたくさんあります。最も軽量な解決策はpostDelayed()、ウィジェットの 1 つを呼び出してRunnable、20 秒で必要なものを実行することです。

Thread.Sleep に関する Oracle のメモを確認しましたが、まだ 100% 確信が持てません。

Oracle は Android とはほとんど関係がないため、 Android のドキュメントを読んだほうがよいでしょう。

于 2013-07-27T19:29:39.230 に答える