单个小部件的多个 PendingIntent

Posted

技术标签:

【中文标题】单个小部件的多个 PendingIntent【英文标题】:Multiple PendingIntents for a single widget 【发布时间】:2014-06-13 13:12:00 【问题描述】:

我有一个包含 4 个按钮的应用小部件,这些按钮的逻辑(单击它们时应该做什么)是不同的。我使用以下模式为他们分配PendingIntents

/* for button 1 */
pendingIntent = PendingIntent.getService(context, 1000 + widgetId,
    intent, PendingIntent.FLAG_UPDATE_CURRENT);

/* for button 2 */
pendingIntent = PendingIntent.getService(context, 2000 + widgetId,
    intent, PendingIntent.FLAG_UPDATE_CURRENT);

/* for button 3 */
pendingIntent = PendingIntent.getService(context, 3000 + widgetId,
    intent, PendingIntent.FLAG_UPDATE_CURRENT);

/* for button 4 */
pendingIntent = PendingIntent.getService(context, 4000 + widgetId,
    intent, PendingIntent.FLAG_UPDATE_CURRENT);

这段代码运行良好。但我认为这不是一个好习惯。我也尝试过使用填充模板机制,但它不起作用。

谁能告诉我将多个不同的意图分配给单个小部件上的多个按钮的最佳做法是什么?

谢谢

【问题讨论】:

【参考方案1】:

我认为我对另一个问题的回答 (here) 可以帮助您。如果您需要更多信息或不清楚的地方,请随时询问。

这里只是提到的一部分答案:

// set action
buttonOneIntent.setAction(BUTTON_ONE_CLICKED);
buttonTwoIntent.setAction(BUTTON_TWO_CLICKED);
buttonThreeIntent.setAction(BUTTON_THREE_CLICKED);
buttonFourIntent.setAction(BUTTON_FOUR_CLICKED);
// ......

【讨论】:

感谢您的回复,您的解决方案也有效,但在我看来,考虑每个按钮的操作不如理想的解决方案。不过,我认为你 +1 @ABFORCE 感谢您的认可。

以上是关于单个小部件的多个 PendingIntent的主要内容,如果未能解决你的问题,请参考以下文章

如何将单个小部件与多个提供程序一起使用?

QDataWidgetMapper 将多列映射到单个自定义小部件的多个属性

如何在 Flutter 中对齐单个小部件?

使用多个小部件进行委托

如何在窗口小部件中放置多个字体

DT Table 中的闪亮小部件