java如何在ANDROID中使用非UI线程(不影响UI线程)调用方法
一,。当点击一个按钮时,我正在从Android ListView中显示的数据库中获取一些数据
二,。每当后台进程运行时,它都无法正常工作。我已经搜索了在主UI线程中运行的代码,这就是我的数据库数据未被正确接收的原因
三,。我想在UI线程之外运行此代码。(普通线程或异步任务)
四,。请帮我做这个
我要在非UI线程中运行的代码:
private void output()
{
if(Popup__output.equals("All"))
{
//for delete a item in List view
helper.open();
new Handler().post(new Runnable()
{
@Override
public void run()
{
cur = helper.getCategory(Popup__output,Sharedemail);
myCursorAdap = new Cursoradapterfor__page(Page1_Landing.this, cur);
List.setAdapter(myCursorAdap);
popupWindowvariable.dismiss();
}
});
}
}
# 1 楼答案
为了更好地实现这一点,您可以使用android
AsyncTask
,您可以在doInBackground()
方法中获取数据,并且UI工作(如设置适配器和解除progressview)必须在UI线程上完成,因此AsyncTask
为您提供onPostExecute()
方法,您可以在其中执行与UI相关的操作有关AsyncTask的详细信息