AsyncTask和setContentView

时间:2012-02-20 11:12:49

标签: android android-asynctask

我有这个代码用于管理我的数据库中的某些国家;

class checkCountryAsync extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
       super.onPreExecute();
       setContentView(R.layout.main);

    }
    @Override
    protected String doInBackground(String... aurl) {
        MDPIActivity.this.runOnUiThread(new Runnable() {

            public void run() {
                  CountryTable country = new CountryTable() ;
                  country.EnterCountry();
            }
        });
        return null;
    }
}

有了这个,我想设置内容View然后在后台设置onBackground方法,但我还是要等到内容视图,直到onBackground方法没有完成。

谢谢。

3 个答案:

答案 0 :(得分:2)

我认为没有任何理由将setContentView()置于onPreExecute方法中,它应采用onCreate方法,以避免任何类型的NullPointerException将尝试查找您的观点,对于AsyncTask,您应该使用在onPostExecute()

方法后执行的doInBackground()

答案 1 :(得分:0)

请尝试这个,认为它的工作.class checkCountryAsync扩展AsyncTask {

@Override
protected void onPreExecute() {
   super.onPreExecute();
   setContentView(R.layout.main);

}
@Override
protected String doInBackground(String... aurl) {
    CountryTable country = new CountryTable() ;
    country.EnterCountry();
    return null;
}

} `

答案 2 :(得分:0)

您应该尝试使用publishProgress()和onProgressUpdate()方法。