widget反应慢

第一开机或者恢复出厂设置后,桌面小部件很长时间才更新到正常的画面

开机后有很多广播在处理,影响了广播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);


你可能感兴趣的:(Android基础知识)