在我的应用程序中,我需要安排在指定的日期和时间(例如 5 月 1 日 10:00)向用户发送通知。此时必须显示通知,当用户单击此通知时,我的应用程序应该打开。我看到有两种方法可以做到这一点:
1. 预定通知。
但是,如果我使用 Alarm 类,我无法更改通知的标题(英文版 SDK 中为“Alarm”)。
提醒类最适合我,但是当它出现在锁定屏幕顶部并且用户单击它时,我的应用程序无法打开。
也许有办法绕过这些时刻吗?
此外,我想摆脱带有时间(5分钟、10分钟、1小时等)和“暂停”按钮的列表选择器,但这并不重要。
2. 来自后台代理的 Toast(或平铺)通知。
但我不确定我的后台代理是否在正确的时间运行。据我了解,后台代理由系统运行,它们的启动受到几个因素的限制(手机电池电量、正在运行的应用程序或其他后台代理的存在)。它甚至可能无法启动。有一种方法可以通过使用 LaunchForTest 来强制代理在特定时间运行,但到处都写到此方法只能用于调试目的,并且在发布应用程序之前必须将其删除。
如果我不删除这个方法,我的申请会被认证吗?另外,我不喜欢 toast 通知只打开 10 秒,然后就消失得无影无踪。可以做点什么吗?
我需要保证在正确的时间显示通知,当您单击它时,我的申请已打开。最好的方法是什么?
如果这在 Windows Phone 7 中无法实现,是否有办法在 Windows Phone 8 中执行此操作?
谢谢。
最佳答案
我认为您应该为此使用提醒。当您单击它们时,您的应用程序将打开。 像这样的东西:
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);
至于当通知出现在锁定屏幕上时应用程序未打开,这是有道理的。如果您可以直接从锁定屏幕打开应用程序,那将是一个很大的安全漏洞!希望对您有所帮助。
关于windows-phone-7 - 如何安排在指定时间向用户发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15679753/