近期由于moto的项目需要适配,根据原生机制实现日历的动态图标,所以研究了一下:
packages/apps/Launcher3/src/com/android/launcher3/DynamicIconProvider.java
Launcher的DaynamicIconProvider.java文件夹中有相关的代码,我们来看,google是如何实现日历动态图标的。
在构造函数中注册了和Date变化相关的监听器
/** 61 * invoked by IconProvider#loadByName 62 * @param context context 63 */ 64 public DynamicIconProvider(Context context) { 65 IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_CHANGED); 66 filter.addAction("android.intent.action.TIME_SET"); 67 filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); 68 69 context.registerReceiver(new DateTimeChangedReceiver(), filter);