アンドロイドの遅延実行のいくつかの方法
2022-02-17 10:58:03
プロジェクトには、すぐに実行する必要のないメソッドがたくさんあり、それらは遅延させる必要があります。
1枚目はスレッド式です。 sleep はスレッドをブロックします
new Thread (new Runnable(){...
public void run(){
Thread.sleep(time)を実行します。
method(); // 実行するメソッド
}
})
2つ目は、タイマーです。
TimerTaskタスク = new TimerTask(){。
public void run(){
//メソッド
}
}
Timer timer = new Timer();
timer.schedule(task,delay)を実行します。
3つ目は postDelayedはスレッドをブロックしない
new Handler().postDelayed(new Runnable(){)
public void run(){
//タスクを実行する
}
4つ目は、AlarmManager 一般的な単純作業では、このようなことはしません。
1枚目はスレッド式です。 sleep はスレッドをブロックします
new Thread (new Runnable(){...
public void run(){
Thread.sleep(time)を実行します。
method(); // 実行するメソッド
}
})
2つ目は、タイマーです。
TimerTaskタスク = new TimerTask(){。
public void run(){
//メソッド
}
}
Timer timer = new Timer();
timer.schedule(task,delay)を実行します。
3つ目は postDelayedはスレッドをブロックしない
new Handler().postDelayed(new Runnable(){)
public void run(){
//タスクを実行する
}
},delay)となります。
例えば、次のようなコードです。
int i = 0;
long delayMillis = 900000;
while(i<13)
while(i<13)
{
<未定義
<スパン <スパン hanlder.postDelayed(runnable, delayMillis*i)を実行します。
<スパン <スパン hanlder.postDelayed(runnable, delayMillis*i)を実行します。
i++;
/*
ここでは、postDelayはスレッドをブロックしないことを意味します。
待機中
delayMillis*i
ミリ秒後にスレッドをキューに追加しますが、プログラムの背後のコードは
delayMillis*i ミリ秒後に実行されます。*/
/*
当初、私の理解では、プログラムは postDelayed で一時停止して
delayMillis*iミリ秒後に次のi++を実行しますが、テストしてみると、これは間違いであることがわかりました。つまり、ここで起こっているのは、プログラムが12回連続してpostDelayedを実行し、delayMills*iミリ秒後に順番にキューに追加されるだけなのです。
*/
4つ目は、AlarmManager 一般的な単純作業では、このようなことはしません。
関連
-
NetworkOnMainThreadException
-
Android.mk:7: *** セパレータがありません。
-
Androidで発生した問題、解決策とヒント
-
Android のパッケージングに失敗し、Android リソースのリンクに失敗したことを示すプロンプトが表示される
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
アンドロイドスタジオ学習入門
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
アンドロイドにおけるトークンの利用
-
AndroidManifest.xmlの最も完全な詳細な説明
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
android.os の NetworkOnMainThreadException。
-
GIF、Lottie、SVGA
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
ArrayAdapter は、リソース ID が TextView であることが必要です。
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
アンドロイドのエリプサイズを使用する
-
cmakeを使用しているアンドロイドスタジオはc++をサポートし、問題は、cmakeのエラーを同期することはできません。
-
android.view.inflateexception 例外処理