1.当我点击一个按钮时,我从Android ListView中显示的数据库中获取一些数据。
2.无论何时后台进程正在运行,它都无法正常工作。我搜索了我的代码它在主UI线程中运行,这就是为什么我的数据库数据没有被正确接收。
3.我想在UI线程之外运行此代码。(正常线程或异步任务)
4.请帮我说明如何做到这一点。
代码我想在非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();
}
});
}
}
答案 0 :(得分:1)
为了更好,您可以使用android AsyncTask
,您可以在doInBackground()
方法中获取数据,并且UI工作如设置适配器和解除进度视图必须在UI线程上完成AsyncTask
为您提供onPostExecute()
方法,您可以在其中执行与UI相关的操作。
有关AsyncTask的详细信息。