我想在通知栏中放一个通知。它是针对多人游戏的,我想在轮到他们行动时通知用户。他们可以一次参加多场比赛,如果这是他们的举动,我会每场比赛发送一个通知。每个游戏都有一个唯一的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);
Run Code Online (Sandbox Code Playgroud)
现在,如果我需要取消其中一个通知,我可以使用标签(在我的情况下为gameId)来查找?:
// only remove the second notification:
mgr.cancel(gameId2, TYPE_NOTIF_YOUR_TURN);
Run Code Online (Sandbox Code Playgroud)
那是怎么回事?
谢谢
是的,这就是它的工作原理。
不过,在旁注中,我将使String标记对于您的应用程序包而言是唯一的。例...
String gameId1 = "com.mycompany.mypackage.gameid.abc";
String gameId2 = "com.mycompany.mypackage.gameid.xyz";
Run Code Online (Sandbox Code Playgroud)
其背后的原因是,在取消时,字符串和int必须匹配以标识要取消的通知。许多应用程序可能使用1、2、3等的int值。因此,字符串标签越简单,另一个应用程序(使用简单标签)就越可能会意外取消您的通知之一。
通常,这似乎不太可能,但是独特的标签会避免这种情况。尽管我没有对此进行过多研究,但这似乎还是推荐的做法。
| 归档时间: |
|
| 查看次数: |
3620 次 |
| 最近记录: |