我使用 AsyncTask 在后台通过 http 请求执行一些数据加载。http 请求使用会话变量。此变量可能会变为无效,并且 http 请求将返回错误。在这种情况下,用户必须重新登录。
那么,我可以使用这样的东西吗:
protected void onPostExecute(IData data) {
//
// !!On Error data object is null!!
//
if (mCallback != null) {
mCallback.onTaskComplete(data);
}
}
在实现回调接口的 Activity 中,我只检查数据对象是否为 null 并将 Activity 更改为“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
最好的祝福