配置具有不同内容的小组件

时间:2018-01-22 19:49:25

标签: android widget android-pendingintent

我的应用会创建许多相同类型的小部件,但内容不同。当用户点击一个小部件时,了解widgetId非常重要,因此我知道要更新的内容。

我的方式似乎总是错误的,因为我的PendingIntent被覆盖了。所以我总是得到相同的EXTRA_APPWIDGET_ID而不是n个不同的OnClick

这是我的代码,我为// edit intent RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.base_info_widget); Intent editIntent = new Intent(context,MainActivity.class); editIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP); editIntent.putExtra(GlobalVariables.COMMAND_KEY_ACTION,GlobalVariables.COMMAND_VALUE_EDIT); editIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,appWidgetId); Log.d(MY_TAG, "putExtra EXTRA_APPWIDGET_ID="+ Integer.toString(appWidgetId)); PendingIntent pendingEditIntent = PendingIntent.getActivity(context, 0, editIntent, PendingIntent.FLAG_CANCEL_CURRENT); views.setOnClickPendingIntent(R.id.layout_wrapper, pendingEditIntent); 设置PendingIntent时的部分。

{{1}}

我希望我的问题很明确。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

让你的意图独一无二:

 editIntent.setData(Uri.parse(editIntent.toUri(Intent.URI_INTENT_SCHEME)));

这就是为什么你在所有小部件上总是得到相同的id