第一开机或者恢复出厂设置后,桌面小部件很长时间才更新到正常的画面
开机后有很多广播在处理,影响了广播APPWIDGET_ENABLE和APPWIDGET_UPDATE(background broadcast)的分发速度。
在AppWidgetServiceImpl.java中的sendEnableIntentLocked()和sendUpdateIntentLocked()中,给intent添加FLAG_RECEIVER_FOREGROUND,这样可以加快APPWIDGET_ENABLE和APPWIDGET_UPDATE的处理速度。
代码路径:baseline/frameworks/base/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
private void sendEnableIntentLocked(Provider p) {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_ENABLED);
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
开机后有很多广播在处理,影响了广播APPWIDGET_ENABLE和APPWIDGET_UPDATE(background broadcast)的分发速度。
在AppWidgetServiceImpl.java中的sendEnableIntentLocked()和sendUpdateIntentLocked()中,给intent添加FLAG_RECEIVER_FOREGROUND,这样可以加快APPWIDGET_ENABLE和APPWIDGET_UPDATE的处理速度。
代码路径:baseline/frameworks/base/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
private void sendEnableIntentLocked(Provider p) {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_ENABLED);
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);