调用execute时不执行任何操作

时间:2012-05-02 05:28:14

标签: android android-asynctask

这是我的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();

那里有什么问题????????????????????????????????

2 个答案:

答案 0 :(得分:0)

您的UpdatingNews是AsyncTask。在run()中,您启动了任务,但随后立即启动了另一个活动,而没有完成任务。最有可能的是,android移动到Main_FormNewUser Activity,但任务仍然在后台运行。 因此,您的第二次运行很可能实际上是第一次运行的结果。

如果您需要下一个活动 After ,您可以获取新闻,您应该在asynctask中将startActivity语句移至onPostExecute()

答案 1 :(得分:0)

查看代码后,我认为xandy是正确的。 Main_FormNewUser Activity与Async任务并行执行。