Android小部件和两个不同的PendingIntents

时间:2012-10-02 12:29:50

标签: android

这是我想要实现的目标: 带3个按钮的小工具: 1.查看文件夹 2.添加项目 3.添加项目并启动相机以将照片附加到项目。

我希望通过使用带有额外内容的Intent来实现2& 3,只需添加一个布尔额外的“照片”,如果单击第3个按钮则保持为true,这是我的代码:

Intent intent = new Intent(Intent.ACTION_INSERT);
        intent.setData(Uri.parse("content://"
                + NoteProviderMetaData.AUTHORITY + "/folders/"
                + folderId));
intent.putExtra("photo", false);
intent.putExtra("kind", "NO PHOTO");
intent.setAction(Intent.ACTION_INSERT);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
views.setOnClickPendingIntent(R.id.imageButton2, pendingIntent);

Intent intentFolder = new Intent(Intent.ACTION_VIEW);
        intentFolder.setData(Uri.parse("content://"
                + NoteProviderMetaData.AUTHORITY + "/folders/"
                + folderId + "/notes"));
PendingIntent pendingIntentFolder = PendingIntent.getActivity(this, 0, intentFolder, 0);
Intent intentPhoto = new Intent(Intent.ACTION_INSERT);
intentPhoto.setData(Uri.parse("content://"
        + NoteProviderMetaData.AUTHORITY + "/folders/"
                + folderId));
intentPhoto.putExtra("photo", true);
intentPhoto.putExtra("kind", "PHOTO");
intentPhoto.setAction(Intent.ACTION_INSERT);
PendingIntent pendingIntentPhoto = PendingIntent.getActivity(this, 0, intentPhoto, 0);
views.setOnClickPendingIntent(R.id.imageButton3, pendingIntentPhoto);

问题在于,在我创建pendingIntentPhoto后,我的pendingIntent个额外内容被新值覆盖,我的活动中始终会获得truePHOTO个值。 pendingFolder意图有效,所以我想只使用另一个意图动作就好了,但我想了解这个PendingIntent的工作原理。

1 个答案:

答案 0 :(得分:1)

我能够使用此方法的未记录功能实现此目的:

public static PendingIntent getActivity (Context context, int requestCode, Intent intent, int flags)

来自文档: requestCode Private request code for the sender (currently not used).

显然,此代码目前以某种方式使用。向此方法调用提供不同的requestCodes允许我为同一个小部件创建不同的PendingIntents