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);


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 QGraphicsScene 中,widget 点击无反应可能是由于以下原因: 1. QGraphicsScene 没有设置 mousePressEvent 函数。 在 QGraphicsScene 中,如果没有设置 mousePressEvent 函数,那么场景中的 widget 默认是不接收鼠标事件的。因此,需要在 QGraphicsScene 中重写 mousePressEvent 函数,并将事件分发给场景中的 widget。 例如: ``` void MyScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { QGraphicsItem *item = itemAt(event->scenePos(), QTransform()); if (item) { item->mousePressEvent(event); } } ``` 这个函数会在鼠标点击场景时被调用,首先通过 itemAt 函数找到鼠标点击位置上的 QGraphicsItem 对象,然后将事件分发给该对象。如果该对象是一个 QWidget,那么它的 mousePressEvent 函数就会被调用。 2. QGraphicsWidget 没有设置 mousePressEvent 函数。 如果 QGraphicsWidget 没有设置 mousePressEvent 函数,那么它也无法接收鼠标事件。因此,需要在 QGraphicsWidget 中重写 mousePressEvent 函数,并处理鼠标点击事件。 例如: ``` void MyWidget::mousePressEvent(QGraphicsSceneMouseEvent *event) { qDebug() << "Widget clicked!"; } ``` 这个函数会在鼠标点击 widget 时被调用,输出 "Widget clicked!"。 3. QGraphicsProxyWidget 没有设置 widget 的属性。 如果 QGraphicsProxyWidget 没有设置 widget 的属性,那么 widget 也无法接收鼠标事件。因此,需要在 QGraphicsProxyWidget 中设置 widget 的属性。 例如: ``` QGraphicsProxyWidget *proxyWidget = new QGraphicsProxyWidget(); QWidget *widget = new QWidget(); proxyWidget->setWidget(widget); ``` 这样,widget 就会被添加到 proxyWidget 中,并且可以接收鼠标事件。 如果以上方法都没有解决问题,那么可能是其他原因导致的。可以尝试使用调试工具或输出日志来查找问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值