加载数据的优化2种方式
开启子线程
private void initData() {
// 加载进度条
mLlLoading.setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
blacks = blackDao.findAll();// 耗时操作
runOnUiThread(new Runnable() {// 修改UI
@Override
public void run() {
mLlLoading.setVisibility(View.GONE);
// 显示条目
adapter = new CallSmsSafeAdapeter(
CallSmsSafeActivity.this, blacks, mIvEmpty);
mLv.setAdapter(adapter);
});
}
});
}
}).start();
// 条目为空
if (blacks == null || blacks.isEmpty()) {
mIvEmpty.setVisibility(View.VISIBLE);
} else {
mIvEmpty.setVisibility(View.GONE);
}
}
异步任务
new AsyncTask