java - SQLite数据库是同步的还是异步的?

标签 java android android-intent android-sqlite

我有一个可以打开新 Intent 的应用程序。新 Intent 在数据库上插入一些行,然后完成();然后返回到第一个屏幕,其中数据应该已使用新行刷新。我的代码在执行时不起作用,但在调试时起作用......所以也许某处存在一些滞后......也许?如何等待查询完成?

这是我的代码:

在第一个屏幕上:

设置适配器和onResume

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    v= inflater.inflate(R.layout.filters_fragment,container,false);

    createFragmentWidgets();


    myrecyclerview = (RecyclerView) v.findViewById(R.id.contact_recycleview);
    recyclerAdapter = new RecyclerViewAdapterFilters(getContext(), lstFilters);
    myrecyclerview.setLayoutManager(new LinearLayoutManager((getActivity())));
    myrecyclerview.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
    myrecyclerview.setAdapter(recyclerAdapter);

    return v;
}


@Override
public void onResume()
{  
// After a pause OR at startup
    super.onResume();

    lstFilters = mydb.getAllFilters("BL");
    recyclerAdapter.notifyDataSetChanged();
}

数据库类的 getAllFilters 方法

public List<Filter> getAllFilters(String type) {
    List<Filter> lstFilter  = new ArrayList<>();

    //hp = new HashMap();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "select * from " + FILTERS_TABLE_NAME+" where type='"+type+"'", null );
    res.moveToFirst();

    while(res.isAfterLast() == false){
        lstFilter.add(new Filter (res.getInt(res.getColumnIndex(FILTERS_COLUMN_ID)),
                res.getString(res.getColumnIndex(FILTERS_COLUMN_NAME)),
                res.getString(res.getColumnIndex(FILTERS_COLUMN_NUMBER)),
                res.getString(res.getColumnIndex(FILTERS_COLUMN_PHOTO)),
                res.getString(res.getColumnIndex(FILTERS_COLUMN_TYPE))));
        res.moveToNext();
    }

    res.close();
    db.close();

    return lstFilter;
}

有什么想法吗?

最佳答案

刷新列表后,调用notifyDataSetChanged()就足够了,但是,我通常只是重置适配器:

    adapter = new ClaimListAdapter(this, thisContext, claimItems);
    mClaimList.setAdapter(adapter);

关于java - SQLite数据库是同步的还是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346413/

相关文章:

java - Cloud Firestore java.lang.IllegalArgumentException : Invalid data. 不支持的类型:

android - Rxjava2 如果时间没有出来,如何返回缓存值

java - Android - ImageView 如何获取相机图片?其中 resultCode 为 0,requestCode 为 2?

android - RxJava : Executing an AsyncTask from Subscribe() fails

android - 在 Eclipse 的图形布局中查看 ScrollView 的全部内容

java - Android.os.Bundle 上的 NullPointerException

android - 如何使用 Maven 将 ZXing 集成到 AndroidApp?

java - 如何在 Java 中加密,在 Android 和 iOS 中解密

Java 8 javadoc doclint 功能 'tag not allowed here'

java - 如何将 MVC 应用于多个窗口/对话框