我试图在一个类中逐个执行两个AsyncTask。
我试过这个
class LoginProcess extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Login_Activity.this);
pDialog.show();
}
protected String doInBackground(String... args) {
//Request Making
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
try {
if(login){
//Call another AsyncTask
new GetFav().execute();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class GetFav extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Login_Activity.this);
pDialog.show();
}
@SuppressLint("ShowToast")
protected String doInBackground(String... args) {
try {
//Request Making
//Getting the results from response
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
}
}
}
首要任务是登录活动。第二个任务是获取favDetails。 它在模拟器中工作正常。但是,当我尝试在移动设备中执行时,我收到错误。登录成功后页面将导航。但是favDetails是空的。导航后,仅在设备中执行favDetail任务。请让我知道如何逐个使用两个异步任务。
我的错误是: -
12-12 06:34:47.641: E/AndroidRuntime(31294): Process: info.androidhive.googlemapsv2, PID: 31294
12-12 06:34:47.641: E/AndroidRuntime(31294): java.lang.NullPointerException
12-12 06:34:47.641: E/AndroidRuntime(31294): at info.androidhive.slidingmenu.ExpandableDrawerAdapter.getChildrenCount(ExpandableDrawerAdapter.java:61)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.widget.ExpandableListConnector.refreshExpGroupMetadataList(ExpandableListConnector.java:567)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.widget.ExpandableListConnector.expandGroup(ExpandableListConnector.java:698)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.widget.ExpandableListView.handleItemClick(ExpandableListView.java:698)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.widget.ExpandableListView.performItemClick(ExpandableListView.java:651)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3467)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.widget.AbsListView$3.run(AbsListView.java:4830)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.os.Handler.handleCallback(Handler.java:733)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.os.Handler.dispatchMessage(Handler.java:95)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.os.Looper.loop(Looper.java:146)
12-12 06:34:47.641: E/AndroidRuntime(31294): at android.app.ActivityThread.main(ActivityThread.java:5602)
12-12 06:34:47.641: E/AndroidRuntime(31294): at java.lang.reflect.Method.invokeNative(Native Method)
12-12 06:34:47.641: E/AndroidRuntime(31294): at java.lang.reflect.Method.invoke(Method.java:515)
12-12 06:34:47.641: E/AndroidRuntime(31294): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
12-12 06:34:47.641: E/AndroidRuntime(31294): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
12-12 06:34:47.641: E/AndroidRuntime(31294): at dalvik.system.NativeStart.main(Native Method)
单击幻灯片菜单时出现此错误。我在运行时加载幻灯片菜单项。现在这些物品都是空的。这就是我收到错误的原因。
我的第一页是登录页面。第二页是欢迎页面。在该页面中,我有带动态项目的幻灯片菜单。所有项目都将登录登录屏幕。如果登录成功,我将从服务器获取项目并将项目加载到幻灯片菜单。但第二个asyncTask不起作用。这就是我收到此错误的原因。
现在请让我知道如何逐个执行AsyncTask。
抱歉英语不好..
提前致谢..
答案 0 :(得分:-1)
您应该在活动中设置一个Handler来执行第二个AsyncTask,然后从第一个AsyncTask的onPostExecute
方法调用该Handler。