Android应用程序组件Content Provider的共享数据更新通知机制分析(4)
16lz
2021-12-04
Step 4. Transport.onChange 这个函数定义在frameworks/base/core/java/android/database/ContentObserver.java文件中:
- publicabstractclassContentObserver{
- ......
- privatestaticfinalclassTransportextendsIContentObserver.Stub{
- ContentObservermContentObserver;
- ......
- publicvoidonChange(booleanselfChange){
- ContentObservercontentObserver=mContentObserver;
- if(contentObserver!=null){
- contentObserver.dispatchChange(selfChange);
- }
- }
- ......
- }
- ......
- }
- publicabstractclassContentObserver{
- ......
- publicfinalvoiddispatchChange(booleanselfChange){
- if(mHandler==null){
- onChange(selfChange);
- }else{
- mHandler.post(newNotificationRunnable(selfChange));
- }
- }
- }
- publicabstractclassContentObserver{
- ......
- privatefinalclassNotificationRunnableimplementsRunnable{
- privatebooleanmSelf;
- publicNotificationRunnable(booleanself){
- mSelf=self;
- }
- publicvoidrun(){
- ContentObserver.this.onChange(mSelf);
- }
- }
- ......
- }
- publicclassMainActivityextendsActivityimplementsView.OnClickListener,AdapterView.OnItemClickListener{
- ......
- privateclassArticleObserverextendsContentObserver{
- ......
- @Override
- publicvoidonChange(booleanselfChange){
- adapter.notifyDataSetChanged();
- }
- }
- ......
- }
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 箭头函数的基础使用
- python起点网月票榜字体反爬案例
- Python技巧匿名函数、回调函数和高阶函数
- Android(安卓)获取已经安装的程序
- android左右滑动加载分页以及动态加载数据
- android Sqlite多线程访问异常解决方案
- Android应用程序编译问题
- Android(安卓)API 中文(76)——AdapterView.OnItemLongClickListen