这是我的asynctask类....................
public class UpdatingNews extends AsyncTask<String, Void, String> {
private Database_WebService webservice;
private Context mContext;
public UpdatingNews(Context context){
this.mContext = context;
}
@Override
protected String doInBackground(String... params) {
webservice = new Database_WebService(mContext);
webservice.updateallCatNews();
webservice.UpdateAllNews();
return null;
}
@Override
protected void onPostExecute(String result) {
startActivity(new Intent(Main_Launcher.this,
Main_FormNewUser.class));
finish();
}
}
当我打电话给它..................
update = new UpdatingNews(this);
check = webservice.CheckSurveySubmit();
int secondsDelayed = 3;
new Handler().postDelayed(new Runnable() {
public void run() {
if (check == 0) {
update.execute("...");
}
if (check == 1) {
startActivity(new Intent(Main_Launcher.this,
Main_AllLatestNews.class));
finish();
}
}
}, secondsDelayed * 1000);
没有表演..............................
webservice.updateallCatNews();
webservice.UpdateAllNews();
那里有什么问题????????????????????????????????
答案 0 :(得分:0)
您的UpdatingNews
是AsyncTask。在run()中,您启动了任务,但随后立即启动了另一个活动,而没有完成任务。最有可能的是,android移动到Main_FormNewUser
Activity,但任务仍然在后台运行。
因此,您的第二次运行很可能实际上是第一次运行的结果。
如果您需要下一个活动 After ,您可以获取新闻,您应该在asynctask中将startActivity
语句移至onPostExecute()
。
答案 1 :(得分:0)
查看代码后,我认为xandy是正确的。 Main_FormNewUser Activity与Async任务并行执行。