gpt4 book ai didi

android - 小部件 - 接收时 Intent 保持不变

转载 作者:行者123 更新时间:2023-11-29 22:23:26 25 4
gpt4 key购买 nike

我将联系人图片添加到动态小部件中。这是我这部分的代码:

for (int x = 0; x < this.appWidgetIds.length; x++){
int id = this.appWidgetIds[x];
RemoteViews rv = new RemoteViews(this.context.getPackageName(), R.layout.widget);
for (int i = 0; i < maxCount; i++){
String lookupKey = sortedItems.get(i).getLookupKey();
Tools.ToLog("LOOKUPKEY=" + lookupKey);
Bitmap bmp = Contact.getContactPicture(this.context, lookupKey);
if (bmp != null){
Intent intent = new Intent(context, ContactsWidget.class);
intent.setAction(ACTION_WIDGET_RECEIVER);
intent.putExtra(ITENT_LOOKUPKEY, lookupKey);
Tools.ToLog("LOOKUPKEY - IDENT=" + intent.getStringExtra(ITENT_LOOKUPKEY));

RemoteViews itemView = new RemoteViews(this.context.getPackageName(), R.layout.widget_itemview);
itemView.setImageViewBitmap(R.id.widget_ImageView, bmp);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(this.context, 0, intent, 0);
itemView.setOnClickPendingIntent(R.id.widget_ImageView, actionPendingIntent);
rv.addView(R.id.widgetContainer, itemView);
}
}
appWidgetManager.updateAppWidget(id, rv);
}

我通过日志测试了 Lookupkey 和来自 Intent 的 lookupkey,它在这一边工作(变量 lookupKey == intent.getStringExtra(ITENT_LOOKUPKEY))。当我现在收到意向时,因为我点击了联系人图片,意向额外信息总是相同的。无论我点击了哪个联系人图片。这是接收代码:

public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
String lookupKey = intent.getStringExtra(ITENT_LOOKUPKEY);
Toast.makeText(context, "Lookup Key: " + lookupKey, Toast.LENGTH_SHORT).show();
//Contact.openContact(this.context, lookupKey);
}
super.onReceive(context, intent);
}

它始终是第一个添加的联系人的 lookupKey。在第一个函数中添加另一个联系人之前,我是否必须以某种方式清除 Intent ,或者有什么问题?

最佳答案

你只有一个PendingIntent

引用文档:

If the creating application later re-retrieves the same kind of PendingIntent (same operation, same Intent action, data, categories, and components, and same flags), it will receive a PendingIntent representing the same token if that is still valid

由于您每次都有相同的操作 (getActivity()) 和相同的 Intent 路由 fragment ,因此只有一个 PendingIntent

与其将操作设置为 ACTION_WIDGET_RECEIVER,不如让它对于您在循环中创建的每个操作都是唯一的。

关于android - 小部件 - 接收时 Intent 保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com