2017-04-11 11 views
2

Webサービスを使用するアプリケーションでログインアクティビティを作成したいとします。要求を行うベストプラクティスは何ですか?IntentServiceとログインアクティビティのAsyncTask?

IntentServiceを使用する必要がありますか、AsynkTaskクラスを使用してメソッドをオーバーライドする必要がありますか?

+0

どのようなWebサービスですか? –

+0

短時間のWebサービスには 'AsncTask'を使います。 –

+0

@jiteshmohiteはJava SOAPです –

答えて

2

AsyncTaskを使用すると、コードをはるかに簡単にするのに役立ちます。 この場合、1つのクラスだけを別のクラスに使用します。この場合、最も簡単な方法でデータを転送します。

2番目のケースでは、インテントサービスでは、データ、タイムラグなどの書き込み/読み取り/収集/抽出が必要です。

あなたはあなたの要求が進行中であるかどうかをチェックすることができます回転 2.前に、要求をキャンセルすることができますし、再び起動していない 1. EDIT。 3.ログイン画面で回転を無効にすることができます。

+0

はい、私は私の画面を回転させると再び呼び出しが行われます... –

+1

@MateutAlin画面のインテントサービスを回転させても、再度呼び出すことができます。現在のデータが正しいかどうかをチェックする必要があります。要求する前に –

+0

@MateutAlin私の更新された回答を読んでください – Vyacheslav

1

IntentServiceはバックグラウンドで実行されるため、ネットワークコール応答後にUIを更新する必要があるため、Aysncタスクを使用する必要があります。

あなたのケースでは、非同期タスクが優れています。

IntentService私たちは長いバックグラウンドで実行しているタスクのために使用します。

0

AsyncTaskは、クラス内で非同期アクションを実行するだけです。

IntentServiceは新しいサービスを実行し、必要な操作を行います。

AsyncTaskは、アクティビティ内で使用できるため、ターゲットアクティビティ(登録者、ユーザーエリアなど)にインテントを実行できるので、はるかに簡単です。

IntentServiceを使用する場合は、バインダを作成し、データを収集し、それ以上のものを監視する必要があります。 IntentServiceは、この目的のためには、価値があるよりはるかに多くの作業になります。

2

IntentServiceを使用する場合は、UIとの通信にバインダーを実装する必要がありますが、AsyncTaskはUIを更新するためのコールバックを提供します。

ただし、AsyncTaskには、呼び出しアクティビティが開始されるたびに開始されるという欠点があります。したがって、この問題を処理するには、AsyncTaskLoaderを使用して、バックグラウンド作業にAsyncTaskを提供し、その状態を処理して、構成の変更によって再開されないようにします。

Android開発者向けのチュートリアルでは、AsyncTaskLoaderの使用方法のかなり良い例があります。あなたはそれを見つけることができますhere

関連する問題