我正在创建一个将发送通知的应用程序。但是,当我使用以下代码行时:

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_CURRENTIntent.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中将其用作启动标志。

08-17 21:21