1. ホーム
  2. java

[解決済み] アンドロイドでアプリケーションのUIをロックせずに10秒間待つにはどうすればよいですか[重複]。

2022-01-28 05:56:21

質問

私はある問題に行き詰っています。10秒後に私のアプリケーションが以下のコードを開始するようにしたいのですが、その人がアプリケーション内で他の何かをクリックするのを止めずに、10秒待ちたいのです( なし 呼び出し Thread.sleep(); ).

try {
    Log.v("msg", "WAIT CheckFrequencyRun");
    Thread.sleep(10000); // giving time to connect to wifi
    
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   //if no network
   if(wifiManager.getConnectionInfo().getNetworkId()==-1){
    //stop wifi
    wifiManager.setWifiEnabled(false);
    Log.v("msg", "no connection");
    handler.postDelayed(this, checkInterval);
   }
   //else connection
   else{
    Log.v("msg", "connection");
    onDestroy();
   }

解決方法は?

を呼び出したくありません。 thread.sleep() の上で UI のスレッドで、お分かりになったようですね。これによって UI というのは、常に悪いことなのです。別の ThreadpostDelayed

このSOの答え その方法と、他のいくつかのオプションがあります。

ハンドラ

タイマタスク

これらを見て、あなたの特定の状況に最適なものを見つけることができます。