在我的应用程序中,我需要在指定的日期和时间(例如 5 月 1 日 10:00)安排向用户发送通知。此时必须显示通知,当用户单击此通知时,我的应用程序应该打开。我看到了两种方法:
1. 预定通知。
但是如果我使用Alarm类,我不能改变通知的标题(在SDK的英文版中是“Alarm”)。
提醒类最适合我,但是当它出现在锁定屏幕顶部并且用户单击它时,我的应用程序无法打开。
可能有办法绕过这些时刻吗?
此外,我想用时间(5 分钟、10 分钟、1 小时等)和“贪睡”按钮摆脱 listpicker,但这并不重要。
2. 来自后台代理的 Toast(或平铺)通知。
但我不确定我的后台代理是否在正确的时间运行。据我了解,后台代理由系统运行,它们的启动受到几个因素(手机电池电量、正在运行的应用程序或其他后台代理的存在)的限制。它甚至可能无法启动。有一种方法可以通过使用 LaunchForTest 在特定时间强制代理,但到处都写到此方法只能用于调试目的,并且在应用程序发布之前必须将其删除。
如果我不删除这个方法,我的申请会被认证吗?我也不喜欢 toast 通知只打开 10 秒钟然后消失得无影无踪。可以做些什么吗?
我需要通知保证在正确的时间显示,当您单击它时,我的应用程序已打开。做这个的最好方式是什么?
如果这在 Windows Phone 7 中是不可能的,有没有办法在 Windows Phone 8 中做到这一点?
谢谢。
问问题
1103 次
1 回答
3
我认为您应该为此使用提醒。当您单击它们时,您的应用程序将打开。就像是:
var reminder = ScheduledActionService.Find("MyAppReminder");
if (reminder != null)
{
ScheduledActionService.Remove("MyAppReminder");
}
reminder = new Reminder("MyAppReminder")
{
Title = "Bla",
BeginTime = DateTime.Now.AddDays(2),
Content = message,
NavigationUri = new Uri("/Start.xaml", UriKind.Relative),
RecurrenceType = RecurrenceInterval.None
};
ScheduledActionService.Add(reminder);
至于通知出现在锁定屏幕上时应用程序未打开,这是有道理的。如果您可以直接从锁定屏幕打开应用程序,那将是一个很大的安全漏洞!希望能帮助到你。
于 2013-03-28T10:53:00.627 回答