android开发 数据库发生变化后界面需要点击按钮刷新,我希望动态刷新

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
//课程显示
    public void ShowCou(View view) throws ExecutionException, InterruptedException {
        List<Course> List = dbCourse.selectAllCourses();
        ListView lv = find(R.id.couList);
        lv.setAdapter(new CouAdapter(List,this) );
    }
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

如果用sqlite的话
建议使用room 配合 livedata可以轻松做到上述需求
可参考我之前写的博客 jetpack系列文章
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Jetpack:Room超详细使用踩坑指南!》, 一起来围观吧 https://blog.csdn.net/weixin_44235109/article/details/120252231?utm_source=app&app_version=4.20.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
livedata指南
https://blog.csdn.net/weixin_44235109/article/details/120116205

数据库变化时发一个消息,在需要更新的页面写一个消息监听,收到更新消息时调用更新界面的代码

啥数据库的,sp的话,看下面的博客
https://blog.csdn.net/BrcLi/article/details/90579513?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%AE%89%E5%8D%93%E7%9B%91%E5%90%ACsp%E7%9A%84%E5%AD%97%E6%AE%B5%E5%8F%98%E5%8C%96&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-90579513.pc_search_em_sort&spm=1018.2226.3001.4187

采用livedata还有observe进行监听,不需要自己手动感知

@pumpkin的玄学 的方法算不错的了,这里再补充一点,你可以用RecycleView+Paging+Room+LiveData的方法实现,并且这个是动态加载,可以自定义加载数据的范围,也可以实现自己刷新的功能。推荐你学习一下《Android Jetpack应用指南》这本书。