AsyncTask を使用して、バックグラウンドで http リクエストに対してデータの読み込みを実行します。http リクエストはセッション変数を使用します。この変数は無効になる可能性があり、http 要求はエラーを返します。この場合、ユーザーは再ログインする必要があります。
だから、私はこのようなものを使うことができます:
protected void onPostExecute(IData data) {
//
// !!On Error data object is null!!
//
if (mCallback != null) {
mCallback.onTaskComplete(data);
}
}
Callback インターフェイスを実装するアクティビティでは、データ オブジェクトが null かどうかを確認し、アクティビティを「MainActivity」ログイン フォームに変更します。
public void onTaskComplete(IData data) {
if (data == null) {
Intent intent = new Intent(ReadDataActivity.this, MainActivity.class);
deleteCurrentSavedSession();
startActivity(intent);
} else {
// Do something with the data
}
}
これは悪い考えですか?ExecutorService
セッションがまだ有効かどうかをチェックする「通常の」スレッドとして使用して実行する必要がありますか?
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.execute(sessionCheckWorker);
executor.shutdown();
while (!executor.isTerminated()) {
}
// Wait until session check task is finished and decide which Activity to load
よろしくお願いします