当前位置: 首页 > 知识库问答 >
问题:

Appwidget跨多个实例的单击意图

杨慎之
2023-03-14

我有一个小部件链接到我的应用程序中的一个活动。为此,我在我的AppWidgetProvider中链接PendingIntent:

public class SampleWidget extends AppWidgetProvider {
    @Override
    public void onUpdate([…]) {
        RemoteViews views = […]

        for (int appWidgetId : appWidgetIds) {
            final Intent intent = new Intent(context, SomeActivity.class);
            intent.putExtra(EXTRA_KEY, extraValue);
            final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

            views.setOnClickPendingIntent(R.id.view_name, pendingIntent);
        }
    }
}

共有1个答案

袁俊弼
2023-03-14

正如pskink在对原始问题的注释中指出的那样,该问题是由PendingIntent.getActivity()中的RequestCode参数使用了0值引起的。用一个唯一的ID(比如小部件的ID)替换它就解决了这个问题:

final PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, 0);

这是因为requestcode用作标识符来区分各个pendingintent

 类似资料:
  • 我们有一个Spring Boot Restful API,它需要从两个不同的Elasticsearch实例(在不同的服务器上)获取数据,一个用于“共享”数据(上面有大约5个不同的索引),一个用于“私有”数据(有大约3个不同的索引)。目前只针对“私有”数据实例运行,一切都很好。但我们现在需要获取“共享”数据。 在我们的Spring Boot应用程序中,我们启用了如下Elasticsearch存储库

  • 问题内容: 我有一个自动相互连接的Spring bean图。大大简化了图示: 所有这些bean都没有指定范围,这暗示它们是单例(使它们成为显式单例不会改变任何东西,我已经尝试过)。 问题在于,在实例化 单个应用程序上下文之后 ,的实例和包含的 不同 实例。怎么会这样 我试图为它创建public no args构造函数,并且调试已确认创建了多次。所有这些创建的堆栈跟踪都在这里。 我还尝试过为Spri

  • 我有一张相互自动连线的Spring豆图。高度简化的插图: 所有这些bean都没有指定作用域,这意味着它们是单例(我已经尝试过了,让它们显式单例不会改变任何东西)。 问题是,在实例化单个应用程序上下文之后,Bar和Baz的实例包含不同的Foo实例。这怎么会发生? 我尝试为创建公共no args构造函数,并且调试已确认已多次创建。所有这些创建的堆栈跟踪都在这里。 我还尝试为Spring启用调试日志记录

  • 但是,共享上下文还有其他很好的理由,其中之一(IMHO)是上下文必须跟踪实体的状态,如果您要获得一个实体,处理该上下文,对该实体进行一些修改,然后附加到一个新的上下文,这个新的上下文必须访问数据库,以便它能够计算出该实体的状态。同样,如果您正在处理实体(发票和它们的所有InvoiceItems)的图,那么新的上下文必须获取图中的所有实体来确定它们的状态。 但现在我用这种建筑撞上了单行道! 如果我必

  • 当您单击应用程序中的一个按钮时,浮动应用程序小部件就会打开。 我写了一个函数,当点击Widget时应该打开应用程序屏幕。(代码如下) 我在下面列出了两种方法 问题: 点击后,应用程序打开需要几秒钟的时间。 我想在点击后打开内存栏中的应用程序

  • 问题内容: 我有以下示例代码: 该子图在同一子图上有两个比例不同的轴,我只希望两个轴都有一个图例。我尝试了上面的代码,它不起作用,仅从ax2中产生细节。有任何想法吗? 问题答案: 我想出了一个可行的解决方案!有没有比这更好的方法了?