在 android 的 AsyncTask 的 doInBackground 和 onPostExecute 上共享 class 成员是否有任何问题?
Is there any issue sharing class member on either both of doInBackground and onPostExecute of AsyncTask of android?
The following is my example code.
private class PostLikes extends AsyncTask<Integer, Void, Void> {
String type_id, msg;
@Override
protected Void doInBackground(Integer... params) {
//....
//....
type_id = jsonobject2.getString("type_id");
msg = jsonobject2.getString("msg");
return null;
}
@Override
protected void onPostExecute(Void result) {
if (type_id.equals("1")) {
Toast.makeText(getApplicationContext(), "error, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
}
}
使用 AsyncTask 的标准方法是使 doInBackground 函数 return 将后台线程的一些结果传递给 onPostExecute 函数。
该代码运行良好,但我想知道上面的代码中是否存在任何问题。
谢谢。
我相信您对它的设置方式感到满意。您的成员变量 type_id
和 msg
像任何其他成员变量一样从 onPostExecute()
引用。 doInBackground()
将在 onPostExecute()
运行 时完成,因此不会发生线程冲突。
The following is my example code.
private class PostLikes extends AsyncTask<Integer, Void, Void> {
String type_id, msg;
@Override
protected Void doInBackground(Integer... params) {
//....
//....
type_id = jsonobject2.getString("type_id");
msg = jsonobject2.getString("msg");
return null;
}
@Override
protected void onPostExecute(Void result) {
if (type_id.equals("1")) {
Toast.makeText(getApplicationContext(), "error, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
}
}
使用 AsyncTask 的标准方法是使 doInBackground 函数 return 将后台线程的一些结果传递给 onPostExecute 函数。 该代码运行良好,但我想知道上面的代码中是否存在任何问题。 谢谢。
我相信您对它的设置方式感到满意。您的成员变量 type_id
和 msg
像任何其他成员变量一样从 onPostExecute()
引用。 doInBackground()
将在 onPostExecute()
运行 时完成,因此不会发生线程冲突。