[解決済み] アンドロイド AsyncTaskとServiceの比較
質問
なぜ私はここのほとんどの質問に対する答えの中で
AsyncTask
とローダーについては書かれていますが
サービス
? Services はあまり知られていないだけなのか、それとも非推奨なのか、それとも何か悪い属性を持っているのか?どのような違いがあるのでしょうか?
(ところで、それについて他のスレッドがあることは知っていますが、開発者が実際の問題に対してどちらを使うのが良いかを簡単に決定できるような明確な違いを述べているものはありません)。
どのように解決するのですか?
場合によっては、同じタスクを
AsyncTask
または
Service
の2種類がありますが、通常はどちらか一方がより適しています。
AsyncTask
は、UIスレッドから実行できない、一回限りの時間のかかるタスクのために設計されています。一般的な例としては、ボタンが押されたときにデータを取得/処理することです。
Service
はバックグラウンドで継続的に実行されるように設計されています。上記のボタンが押されたときにデータを取得する例では、サービスを起動してデータを取得させ、その後停止させることができますが、これは非効率的です。これは非効率的です。
AsyncTask
を使用する方がはるかに高速です。
しかし、バックグラウンドで継続的に何かをする必要がある場合には
Service
が最適です。この例としては、音楽を再生する、新しいデータを継続的にチェックする、などがあります。
また、Sherifがすでに述べたように、サービスは必ずしもUIスレッドから実行されるわけではありません。
ほとんどの場合
Service
は、アプリケーションの
Activity
が開かれていないときでもコードを実行したいときに使います。
AsyncTask
は、UI スレッドからコードを実行するのを信じられないほど簡単にするために設計されています。
関連
-
AAPT2エラーについて:詳しくはログをご確認ください。
-
android studioが "The activity must be exported or contain an intent-filter" と表示され実行される。
-
アンドロイドリストビュー
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] AsyncTaskのAndroidサンプル
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
NetworkOnMainThreadException
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
Androidで発生した問題、解決策とヒント
-
を作ってください。*** makeするルールがない エラーの原因、分析、解決策
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
Android studio 制約レイアウト ConstraintLayout
-
[解決済み] Service、Async Task、Threadの違い?