【发布时间】:2018-05-30 10:11:51
【问题描述】:
我在使用 Xamarin Android 将点击事件绑定到应用小部件时遇到问题。点击正在工作,并且正在启动活动,但传递来区分小部件的信息不起作用。似乎正在为小部件的所有实例注册相同的意图。
以下是从服务执行点击绑定的代码的精简示例。完整的代码还会更新小部件上的文本。该部分工作正常,并且在小部件的每个实例上都不同,所以我相信整体更新模式是正确的。这让我将意图/待定意图绑定作为问题。我在下面使用的模式有问题吗?
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
var manager = AppWidgetManager.GetInstance(this);
var ids = intent.GetIntArrayExtra(AppWidgetManager.ExtraAppwidgetIds);
foreach (var id in ids)
{
var widgetView = new RemoteViews(PackageName, Resource.Layout.SingleRateWidget);
var activityIntent = new Intent(this, typeof(ExchangesActivity));
activityIntent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask);
activityIntent.PutExtra("WidgetId", id);
var pendingIntent = PendingIntent.GetActivity(this, 0, activityIntent, PendingIntentFlags.UpdateCurrent);
widgetView.SetOnClickPendingIntent(Resource.Id.widgetBackground, pendingIntent);
manager.UpdateAppWidget(id, widgetView);
}
return StartCommandResult.Sticky;
}
谢谢。
【问题讨论】:
标签: android xamarin android-pendingintent android-appwidget