我尝试使用2个按钮创建通知操作。
我想用PendingIntent.getActivities
执行此操作,其中intents[]
作为参数之一。
问题在于mBuilder.addAction
,我无法选择用户点击按钮时要运行的意图。
现在每个按钮激活相同的意图。
我确定必须有一些东西我可以选择我想要选择的意图,否则为什么intent[]
是getActivities()
方法的参数之一?
试图寻找解决方案,但没有运气..
以下主要代码向您展示我想要做的事情:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
Intent[] intents = new Intent[2];
intents[0] = new Intent(this,next_activity.class); // the first Intent
intents[1] = Intent.createChooser(sendIntent, "Share with.."); // the second Intent
PendingIntent resultPendingIntent = PendingIntent.getActivities(this,0,intents,PendingIntent.FLAG_UPDATE_CURRENT);
// the problem is with resultPendingIntent, need to choose what intent to run from intents array
mBuilder.addAction(R.mipmap.ic_launcher,"Share",resultPendingIntent)
.addAction(R.mipmap.ic_launcher, "Open", resultPendingIntent);
答案 0 :(得分:0)
(Context context, int requestCode, Intent[] intents, int flags)
与getActivity(Context,int,Intent,int)类似,但允许提供Intent数组。数组中的最后一个Intent被视为PendingIntent的主键,就像给getActivity(Context,int,Intent,int)的单个Intent一样。发送生成的PendingIntent后,所有Intent的启动方式与将它们传递给startActivities(Intent [])的方式相同。
这两个动作都将启动相同的意图。两个意图将在触发任一操作后启动。
解?
检索相应Intent的PendingIntent并将其附加到相应的操作。
PendingIntent sharePendingIntent = PendingIntent.getActivity(this,0,intents[1],PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent openPendingIntent = PendingIntent.getActivity(this,0,intents[0],PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.addAction(R.mipmap.ic_launcher,"Share",sharePendingIntent)
.addAction(R.mipmap.ic_launcher, "Open", openPendingIntent);