ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
DBMS构造函数如下: **DropBoxManagerService.java** ~~~ public DropBoxManagerService(final Contextcontext, File path) { mDropBoxDir = path;//path指定dropbox目录为/data/system/dropbox mContext = context; mContentResolver = context.getContentResolver(); IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_DEVICE_STORAGE_LOW); filter.addAction(Intent.ACTION_BOOT_COMPLETED); //注册一个Broadcast监听对象,当系统启动完毕或者设备存储空间不足时,会收到广播 context.registerReceiver(mReceiver, filter); //当Settings数据库相应项发生变化时候,也需要告知DBMS进行相应处理 mContentResolver.registerContentObserver( Settings.Secure.CONTENT_URI, true, new ContentObserver(new Handler()) { public void onChange(boolean selfChange) { //当Settings数据库发生变化时候, BroadcastReceiver的onReceive函数 //将被调用。注意第二个参数为null mReceiver.onReceive(context,(Intent) null); } }); } ~~~ 根据上面代码可知:DBMS注册一个BroadcastReceiver对象,同时会监听Settings数据库的变动。其核心逻辑都在此BroadcastReceiver的onReceive函数中。该函数在以下三种情况发生时被调用: - 当系统启动完毕时,由BOOT_COMPLETED广播触发。 - 当设备存储空间不足时,由DEVICE_STORAGE_LOW广播触发。 - 当Settings数据库相应项发生变化时候,该函数也会被触发。 这个函数内容较简单,主要功能是存储空间不足时需要删除一些老旧的日志文件以节省存储空间。读者可自行分析这个函数。