我用过的代码
public class DemoAsynTask extends AsyncTask{
@Override
protected void onPreExecute(){
try{
MainActivity myActivity = new MainActivity();
myActivity.super.onCreate(savedInstanceState);
myActivity.setContentView(R.layout.activity_main);
EditText txtInformation = (EditText) myActivity.findViewById(R.id.txtInformation);
txtInformation.setText("TESTING");
}catch(Exception ex){
ex.printStackTrace();
}
}
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
return null;
}
}
DemoAsynTask 类不在里面,我看到一个例子是有效的,但是类在 MainActivity 里面
public class MainActivity extends activity{
public class DemoAsynTask extends AsyncTask{
}
}
DemoAsynTask 类是单独的文件,我想单独调用它,但它有空指针异常。
public class MainActivity extends activity{
}
public class DemoAsynTask extends AsyncTask{
}
错误日志 java.lang.NullPointerException
最佳答案
嘿,您创建 MainActivity(无需实例化 MainActivity,让它根据 Activity 生命周期实例化)并将 DemoAsyncTask 作为另一个类或作为 MainActivity 的内部类。在 onPreExecute() 中,您设置状态“TESTING”,在 onPostExecute() 中,根据您在 doInBackground() 中获得的结果更改状态。
关于android - AsyncTask 控件 UI 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638662/