我对Windows Phone 8中的推送通知有疑问 . 据我所知,推送通知有三种类型:
-
Toast Notification .
-
平铺通知 .
-
原始通知 .
所以,在我看来:
如果应用程序正在运行,并在前台打开:
-
吐司将不会显示,但我可以处理它的事件并做一些事情 .
-
Tile将自动更新
-
原始通知必须由我处理 . ( Question one: can i do it without background task? )
如果应用现在正在运行,但已暂停:
-
Toast将在我的应用程序中显示,因为它没有任何事件处理,只有"BindToToast()"
-
Tile将更新,无需任何事件处理,仅"BindToTile()"
-
原始通知必须由后台任务处理 .
如果应用程序未打开:
-
Toast将自动显示,如果在之前的启动"BindToToast()"被调用 .
-
如果在之前的启动"BindToTile()"被调用,Tile将自动更新,
-
Question 2: what about raw notification? how to handle it here?
1 回答
我认为情况如下:
Toast通知仅在应用程序未运行时显示,但可以在应用程序运行时截获
无论应用程序是否运行,平铺通知始终会更新磁贴
原始通知只能由应用程序在运行时处理 .
Windows Phone 8.0中的后台任务通常无法处理Toast / raw通知 . 但也许有一个黑客来解决这个问题 . 见Windows Phone 8 notifications and background tasks和Windows Phone 8 Background Task with notifications
在Windows Phone 8.1中,很有可能创建在收到通知时调用的后台任务,因此后台任务可以处理通知 .