我正在使用AsyncTask
做背景事情。我一直都知道操作只是在AsyncTask
中执行并行,但不知道它何时开始。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lec_refer_room);
String subCode = null;
try{
System.out.println(subCode);
}catch(Exception e){
finish();
}
new GetRefer(subCode, page).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
// this is AsyncTask
}
我尝试在字符串subCode
为空时完成活动。但是上面的代码在GetRefer().executeOnExecutor()
AsyncTask是否与主线程一起启动?
那么如何在AsycTask中使用try-catch?
答案 0 :(得分:1)
我已经创建了一个示例,向您展示UITableView
如何工作,希望它能满足您的要求
AsyncTask
要执行它,您必须执行以下操作:
public class TaskTest extends AsyncTask<String, Integer, Boolean> {
protected Boolean doInBackground(String... params) {
Boolean StringNull = false;
String subCode = params[0];
if (subCode == null){
StringNull = true;
}
return StringNull;
}
protected void onPostExecute(Boolean result) {
if (!result) {
System.out.println(subCode);
} else {
finish();
}
}
}
在TastkTest tasktest = new TaskTest();
tasktest.execute(subCode);
onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lec_refer_room);
String subCode = null;
TastkTest tasktest = new TaskTest();
tasktest.execute(subCode);
}
仍然相同。
如果你想把它放在InnerClass
上,请执行以下操作......
onCreate()
答案 1 :(得分:0)
您可以在finish ()
中拨打onCreate()
,但这不是您可能想要做的事情,因为用户不知道为什么Activity
没有启动。
本文将帮助解释AsyncTask
的工作方式:http://hiqes.com/androids-asynctask-explained/