代码1和代码2创建了pendingIntent对象,但在某些示例代码中,它编写为代码1,而在其他一些示例代码中,它编写为代码2.哪一个是正确的?谢谢!
代码1
pendingIntent = PendingIntent.getService(mContext,
0,
new Intent(mContext, CleanupService.class),
PendingIntent.FLAG_CANCEL_CURRENT);
代码2
pendingIntent = PendingIntent.getService(mContext,
0,
new Intent(mContext, CleanupService.class),
0);
答案 0 :(得分:2)
一个标志基本上代表int中的一个信息位,这就是为什么它们的值总是2的幂。为什么你可以用bitwise设置多个标志,或者:
pendingIntent = PendingIntent.getService(mContext,
0,
new Intent(mContext, CleanupService.class),
PendingIntent.FLAG_UPDATE_CURRENT|PendingIntent.FLAG_NO_CREATE);
你的两个代码块做了不同的事情,两者都没有比另一个更“正确”。
FLAG_CANCEL_CURRENT
将基本上取消所有可以启动等效意图的待处理意图
0
对应所有标志关闭