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();
}
});
}
}
最佳答案
为了更好,您可以使用 android AsyncTask
,您可以在其中获取数据 doInBackground()
方法和 UI 工作,如设置适配器和关闭 progressview 必须在 UI 上完成-thread 所以 AsyncTask
为您提供 onPostExecute()
方法,您可以在其中执行 UI 相关操作。
有关AsyncTask的更多详细信息.
关于java - 如何在 Android 中使用非 UI 线程(不影响 UI 线程)调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844647/