我可以在PendingIntent.getService中将标志设置为0

时间:2015-07-20 02:37:34

标签: android

代码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);

1 个答案:

答案 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对应所有标志关闭