如何在指定时间安排通知给用户

时间:2013-03-28 10:46:12

标签: windows-phone-7 notifications windows-phone-8 windows-phone

在我的应用中,我需要在指定的日期和时间(例如5月1日10:00)安排通知用户。此时必须显示通知,当用户点击此通知时,我的应用应该是开放的。我认为有两种方法可以做到这一点:

1.预定通知。
但是如果我使用Alarm类,我就无法更改通知的标题(在英文版SDK中为“Alarm”)。
提醒课程主要适合我,但当它出现在锁定屏幕上并且用户点击它时,我的应用程序无法打开。
这些时刻可能有办法解决吗?
我也希望摆脱listpicker的时间(5分钟,10分钟,1小时等)和“贪睡”按钮,但这并不重要。

2.来自后台代理的Toast(或tile)通知。
但我不确定我的后台代理是否在合适的时间运行。据我所知,后台代理由系统运行,并且它们的启动受到几个因素的限制(手机电池充电,正在运行的应用程序或其他后台代理)。它甚至可能没有开始。有一种方法可以通过使用LaunchForTest在特定时间强制代理,但是到处都写了这个方法只能用于调试目的,并且在发布应用程序之前必须将其删除。 如果我不删除此方法,我的申请是否会获得认证?此外,我不喜欢吐司通知只打开10秒,然后消失无踪。有什么可以做的吗?

我需要在合适的时间保证显示通知,当您点击它时我的应用程序已打开。最好的方法是什么?
如果在Windows Phone 7中无法做到这一点,有没有办法在Windows Phone 8中执行此操作?

感谢。

1 个答案:

答案 0 :(得分: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);

对于在锁定屏幕上显示通知时未打开的应用程序,这是有道理的。如果您可以直接从锁定屏幕打开应用程序,那将是一个很大的安全漏洞!希望它有所帮助。