使用String标签和int id删除通知?

时间:2011-03-01 22:01:19

标签: android

我想在通知栏中发出通知。这是一个多人游戏,我想在轮到他们采取行动时通知用户。他们可以一次参加多个游戏,如果是他们的举动,我会在每个游戏发送一个通知。每个游戏都有一个唯一的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);

现在如果我需要取消其中一个通知,我可以使用标签查找(在我的情况下是gameId)?:

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

这是怎么回事?

由于

1 个答案:

答案 0 :(得分:4)

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

但是,请注意,我会使您的应用包中的String标签独一无二。实施例...

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

这背后的原因是,取消时,字符串和int必须匹配才能识别要取消的通知。许多应用程序可能使用1,2,3等int值。因此字符串标记越简单,另一个应用程序(使用简单标记)就越可能意外取消您的某个通知。

一般情况下,似乎不太可能,但唯一标签会避免它。虽然我没有仔细研究过,但这似乎也是推荐的做法。