2011-03-01 43 views
4

我想在通知栏中放入通知。这是一款多人游戏,我希望通知用户何时轮到他们。他们可以一次参加多场比赛,每场比赛我会发送一个通知。每个游戏都有一个唯一的ID,所以我想送样通知:使用字符串标记和int id删除通知?

int TYPE_NOTIF_YOUR_TURN = 0; 
String gameId1 = "abc"; 
String gameId2 = "xyz"; 

mgr.notify(gameId1, TYPE_NOTIF_YOUR_TURN, notification); 
mgr.notify(gameId2, TYPE_NOTIF_YOUR_TURN, notification); 

现在,如果我要取消的通知的一个,我可以查找使用标签(在我的情况下,游戏ID)?:

// only remove the second notification: 
mgr.cancel(gameId2, TYPE_NOTIF_YOUR_TURN); 

它是如何工作的?

谢谢

回答

4

是的,这正是它的工作原理。

不过,我会让字符串标签对应用程序包唯一。示例...

String gameId1 = "com.mycompany.mypackage.gameid.abc"; 
String gameId2 = "com.mycompany.mypackage.gameid.xyz"; 

推理的背后是,取消时,字符串和int必须匹配以标识要取消的通知。许多应用程序可能使用1,2,3等int值。因此,字符串标签越简单,其他应用程序(使用简单标签)就越有可能意外取消您的某个通知。

一般来说,它似乎不太可能,但独特的标签将避免它。尽管我没有仔细研究过,但似乎也可能会推荐这种做法。

+0

好点,谢谢! – user291701 2011-03-02 00:48:20

+0

@ user291701:没问题,很乐意帮忙。 – Squonk 2011-03-02 01:28:10

+4

标签只需要对包名称唯一。 – 2015-03-18 15:47:35