[解決済み] AndroidプラットフォームにおけるServiceとIntentServiceの比較
質問
でできることの例を求めています。
IntentService
でできないことを
Service
(逆もまた然り)?
また、私は
IntentService
は別のスレッドで実行され
Service
はありません。 ですから、私が見る限り、サービスをそれ自身のスレッド内で起動するのは
IntentService
. これでいいのでしょうか?
どのように解決するのですか?
Tejas Lagvankar さんが素敵な記事を書きました。 ポスト このテーマについて 以下は、ServiceとIntentServiceの主な相違点です。
どのような場合に使用するのか?
-
は サービス はUIを持たないタスクで使用できますが、あまり長くはならないはずです。 長いタスクを実行する必要がある場合は、Service内のスレッドを使用する必要があります。
-
その IntentService は、通常メインスレッドと通信しない長いタスクで使用することができます。 通信が必要な場合は、メインスレッドハンドラやブロードキャストインテントを使用することができます。また、コールバックが必要な場合(インテントをトリガーとするタスク)にも使用することができます。
トリガーはどのように行うのですか?
-
は サービス はメソッドを呼び出すことで起動します。
startService()
. -
は IntentService は、Intent を使ってトリガーされ、新しいワーカスレッドを生成し、メソッド
onHandleIntent()
がこのスレッドで呼び出される。
トリガー元
- は サービス と IntentService は、任意のスレッド、アクティビティ、または他のアプリケーションコンポーネントからトリガされる可能性があります。
ランズオン
-
は サービス はバックグラウンドで実行されますが、アプリケーションのメインスレッドで実行されます。
-
その IntentService は別のワーカスレッドで実行されます。
制限事項/欠点
-
は サービス は、アプリケーションのメインスレッドをブロックする可能性があります。
-
その IntentService はタスクを並列に実行することができません。したがって、連続したインテントはすべてワーカスレッドのメッセージキューに入り、順次実行されます。
停止するタイミングは?
-
を実装した場合 サービス を呼び出すことで、サービスを停止させる責任があります。
stopSelf()
またはstopService()
. (バインディングを提供するだけなら、このメソッドを実装する必要はありません)。 -
は IntentService は、すべての開始要求が処理された後にサービスを停止します。
stopSelf()
.
関連
-
Android: インポートモジュールエラー Android リソースのリンクに失敗しました
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] Androidでサービスが稼働しているかどうかを確認する方法を教えてください。
-
[解決済み】「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 実装 サイバーパンク風ボタン
おすすめ
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
デフォルトのアクティビティが見つからない場合の対処法
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
GoogleMapと連携し、位置情報の取得が可能
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
アンドロイドの遅延実行のいくつかの方法
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
[解決済み] IntentServiceとServiceの違いは何ですか?[重複している]。