I'm in little bit confusion where in what case I need to use application components like Service, asyncTask and Broadcast Receiver.
Can any one explain what the exact difference between these there and where I need to use these components?
I'm in little bit confusion where in what case I need to use application components like Service, asyncTask and Broadcast Receiver.
Can any one explain what the exact difference between these there and where I need to use these components?
AsyncTask is a friendly way to create a new thread that performs some work asynchronusly.
A Broadcast Receiver is something like an Event Handler for system events. It can run in background and perform an action when something happens, like turning the phone off or turning wifi on..
A Service is just an app that works in background (like a daemon) and serves information to an app or just performs tasks.
Sorry for my English, I try to let me understand but it is not my mother tongue
これまでのプロジェクトでこれら 3 つを適用した場所に直行します。
1.サービス: ユーザーの操作なしでバックグラウンドで実行したいもの。たとえば、位置データを継続的に取得したり、サーバーにデータを継続的に送信したりします。サービスを使用して、数時間単位ごとにタスクを実行することもできます。たとえば、10 分の送信などです。バックグラウンド更新。
2.AsyncTask: 実行の新しいスレッドを作成します。これまでに遭遇した最善の使用法は、Web サービスを呼び出すことです..Web サービス呼び出しに AsyncTask を使用して次のことを行いました。 1.onPreExecute() でプログレス バーを表示します。 doInBackground(Params...) でのサービス呼び出し 3. onPostExecute(Result) で、UI を更新するか、Web サービスからの応答で他の処理を行います。
3.BroadCastReciever は、アプリのグローバル レシーバーのようなものです。電話の再起動などのシステム イベントとアプリ内のカスタム イベントの両方をリッスンできます。電話。
ユースケースで説明しますので、理解を深めてください -
AsyncTask - サーバーから何かを取得したり、サーバーに何かを投稿したりしたいですか? メインスレッドでこれを行うと、ユーザーはアプリを操作できなくなります。そのため、Asynctask が使用され、別のスレッドでネットワーク アクティビティが実行されます。
サービス - バックグラウンドで何かを管理したいですか? たとえば、ユーザーの位置を 10 分または 1 時間ごとに取得したり、ユーザーが特定のエリアを横切ろうとしたときにその位置に基づいて警告したりします。サービスは、アプリが開かれていない場合でもアプリを実行します (ユーザーが何か他のことを行っているか、電話がロックされている場合でも、サービスはバックグラウンドで実行されます)。
ブロードキャスト レシーバー - 場所を追跡し、ローカルに保存しているとします (インターネットがダウンしている場合)。インターネットが稼働しているときではなく、それらすべてを送信する必要があります。そのため、その特定のイベントをリッスンする OS に登録すると、制御を取得できます。または、デバイスが再起動されたことをサーバーに認識させたい場合は、それを実装するだけです。
クリア?
「サービス」は、ユーザーと対話することなく、バックグラウンドで実行されるコンポーネントです。すべての開発者は、自分のアプリケーションで新しいサービスを作成できます。サービスは独自のプロセスで実行できるため、Androidの真のマルチタスクをサポートします。
「AsyncTask」は、スレッドとハンドラーの作成をカプセル化します。AsyncTaskはexecute()メソッドを介して開始されます。execute()メソッドはdoInBackground()およびonPostExecute()メソッドを呼び出します。主な目的は、ユーザーの操作なしで何かをダウンロードすることです。
「ブロードキャストレシーバー」は、BroadcastReceiverを拡張し、AndroidManifest.xmlファイル(またはコード)を介してAndroidアプリケーションにレシーバーとして登録されるクラスです。Context.registerReceiver()メソッドを介してBroadcastReceiverを動的に登録できます。クラスBroadcastReceiverは、onReceive()メソッドを定義します。このメソッドの間のみ、BroadcastReceiverオブジェクトが有効になり、その後、AndroidシステムはBroadcastReceiverをリサイクルできます。
サービスとそのローカル メモリ変数がメモリに読み込まれ、常に実行されている
BroadCast レシーバーは、イベントの処理中にメモリ内で動作することが保証されているだけです。
メモリが不足している場合、Broadcastreceiver はオペレーティング システムによってメモリから削除される可能性があります。