2015-07-20 131 views
0

代碼1和代碼2創建一個pendingIntent對象,但是在某些樣本代碼中,它編寫爲代碼1,而在其他一些樣本代碼中,它編寫爲代碼2。是正確的?謝謝!我可以在PendingIntent.getService中將標誌設置爲0

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

回答

2

的標誌基本上代表的信息在一個int,這就是爲什麼它們的值總是2的冪的單個比特。爲什麼你可以設置多個標誌位或:

pendingIntent = PendingIntent.getService(mContext, 
    0, 
    new Intent(mContext, CleanupService.class), 
    PendingIntent.FLAG_UPDATE_CURRENT|PendingIntent.FLAG_NO_CREATE); 

你的兩個代碼塊做了不同的事情,兩者都比另一個更「正確」。

FLAG_CANCEL_CURRENT基本上會取消所有現有掛起的意圖,將推出一個相當於意圖

0對應於所有的旗子取下

+0

謝謝!它是否意味着「0對應所有標誌關閉」? – HelloCW

+0

你在問所有的旗幟是什麼意思?或者你不知道我指的是什麼? – tachyonflux

+0

是的,你能告訴我所有的旗幟是什麼意思嗎? – HelloCW

相關問題