[解決済み] Androidの基本:UIスレッドでコードを実行する
2022-03-21 20:21:24
質問
UIスレッドでコードを実行するという観点で、以下のような違いはありますか?
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Log.d("UI thread", "I am the UI thread");
}
});
または
MainActivity.this.myView.post(new Runnable() {
public void run() {
Log.d("UI thread", "I am the UI thread");
}
});
そして
private class BackgroundTask extends AsyncTask<String, Void, Bitmap> {
protected void onPostExecute(Bitmap result) {
Log.d("UI thread", "I am the UI thread");
}
}
解決方法は?
どれも正確に同じではありませんが、同じ正味の効果をもたらします。
との違いは、もし、あなたがたまたま
で
を実行するとき、メインアプリケーションスレッドでは、最初のもの(
runOnUiThread()
) が実行されます。
Runnable
をすぐに実行します。2つ目のもの(
post()
) は常に
Runnable
をイベントキューの末尾に追加します。
3つ目は、インスタンスを作成して実行したと仮定すると
BackgroundTask
を実行するために、スレッドプールからスレッドを取得して、多くの時間を浪費することになります。
doInBackground()
を実行する前に、最終的に
post()
. これは、3つの方法のうち、圧倒的に効率が悪いです。使用方法
AsyncTask
を使うためだけでなく、バックグラウンドのスレッドで実際に作業をする場合。
onPostExecute()
.
関連
-
[解決済み】Android "ビュー階層を作成した元のスレッドだけが、そのビューに触れることができる"
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
android exception - aapt.exe has stopped working.
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
アンドロイドリストビュー
-
アプリの実行エラー。ターゲットデバイスが見つからない問題