这是我想要实现的目标: 带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
个额外内容被新值覆盖,我的活动中始终会获得true
和PHOTO
个值。
pendingFolder
意图有效,所以我想只使用另一个意图动作就好了,但我想了解这个PendingIntent的工作原理。
答案 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
。