为什么我不能在PendingIntent中使用Intent.FLAG_ACTIVITY_NEW_TASK

时间:2018-01-15 00:27:22

标签: java android android-intent

我正在创建一个会发送通知的应用。但是当我使用这行代码时:

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_CATEGORIES,Intent.FILL_IN_COMPONENT,Intent.FILL_IN_PACKAGE,Intent.FILL_IN_SOURCE_BOUNDS, Intent.FILL_IN_SELECTOR,Intent.FILL_IN_CLIP_DATA

任何人都可以告诉我为什么会发生这种情况并建议一种解决方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果查看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,因此您必须将其用作{ SET_TOKEN: function (state, token) { state.token = token; Vue.axios.defaults.headers.common['Authorization'] = (token ? ('JWT ' + token) : ''); } 中的启动标记。