使用构建器构建CustomTabsIntent并设置setActionButton:
new CustomTabsIntent.Builder(getSession())
.setActionButton(getShareIcon(),
"Share text",
getShareIntent(),
true)
.build()
getShareIntent的粗略实现:
@NonNull
private PendingIntent getShareIntent() {
Intent shareIntent = new Intent(mContext, ShareBroadcastReceiver.class);
shareIntent.putExtra("extra", someValue);
return PendingIntent.getBroadcast(mContext, 0, shareIntent, 0);
}
我希望在我的广播接收器中获取额外的内容。它可以工作,但当我用不同的" someValue"重建它时。我收到了初始的someValue。
自定义标签似乎只发送初始意图并忽略更新的意图,直到重新启动自定义标签服务。
未记录该行为。这是一个错误吗?
答案 0 :(得分:4)
这是问题
@NonNull
private PendingIntent getShareIntent() {
Intent shareIntent = new Intent(mContext, ShareBroadcastReceiver.class);
shareIntent.putExtra("extra", someValue);
return PendingIntent.getBroadcast(mContext, 0, shareIntent, 0);
}
第二个参数是requestCode,对于不同的广播
应该是不同的替换
PendingIntent.getBroadcast(mContext, 0, shareIntent, 0);
与
PendingIntent.getBroadCast(mContext, requestCode , shareIntent, 0}
每次生成不同的requestCode