我正在创建一个将发送通知的应用程序。但是,当我使用以下代码行时:
PendingIntent pendingIntent =
PendingIntent.getActivity(getApplicationContext(), 0, intent,
Intent.FLAG_ACTIVITY_NEW_TASK);
它说:
必须为以下一项或多项:PendingIntent.FLAG_ONE_SHOT,PendingIntent.FLAG_NO_CREATE,PendingIntent.FLAG_CANCEL_CURRENT,PendingIntent.FLAG_UPDATE_CURRENT,Intent.FILL_IN_ACTION,Intent.FILL_IN_DATA,Intent.FILL_IN_INS,INILL,INILL,INILL,INILL,INILL,INILL,INILL,INILL, ,Intent.FILL_IN_CLIP_DATA
谁能告诉我为什么会这样,也许可以提出解决办法?
提前致谢。
最佳答案
如果查看Documentation | PendingIntent.getActivity(),则getActivity()
方法flags
中的最后一个参数只能具有以下int
类型的标志:FLAG_ONE_SHOT
FLAG_NO_CREATE
FLAG_CANCEL_CURRENT
FLAG_UPDATE_CURRENT
或Intent.fillIn()
支持的任何标志是:FILL_IN_ACTION
FILL_IN_DATA
FILL_IN_CATEGORIES
FILL_IN_PACKAGE
FILL_IN_COMPONENT
FILL_IN_SOURCE_BOUNDS
FILL_IN_SELECTOR
FILL_IN_CLIP_DATA
因此,不能在Intent.FLAG_ACTIVITY_NEW_TASK
方法中使用PendingIntent.getActivity()
,因此必须在Intent
中将其用作启动标志。