与众不同windows phone (11)

Background Task(后台任务)之警报(Alarm)和提醒(Reminder)

介绍

与众不同 windows phone 7.5 (sdk 7.1) 之后台任务

Alarm - 警报

Reminder - 提醒

>示例

1、演示 Alarm(按一个时间计划弹出警报信息)

AlarmDemo.xaml

<phone:PhoneApplicationPage
    x:Class="Demo.BackgroundTask.AlarmDemo"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
    shell:SystemTray.IsVisible="True"> 

    <StackPanel Orientation="Vertical">
        <TextBlock Text="Alarm 的样式" />
        <Image Source="/BackgroundTask/Alarm.png" /> 

        <Button x:Name="btnRegister" Content="注册一个一分钟后启动的 Alarm" Click="btnRegister_Click" />
        <TextBlock x:Name="lblMsg" />
    </StackPanel> 

</phone:PhoneApplicationPage>

AlarmDemo.xaml.cs

/*
 * ScheduledAction - 所有计划活动的基类,抽象类。ScheduledNotification 和 ScheduledTask 继承自此类
 * ScheduledNotification - 用于按时间计划弹出信息,抽象类
 *
 * Alarm - 按一个时间计划弹出警报信息,每一个程序在某个时刻最多只能有 50 个警报信息。Alarm 继承自 ScheduledNotification
 *     Name - Alarm 的名称,此名称即 ID
 *     Title - 警报的标题,这个只能显示系统默认值,无法修改
 *     Content - 警报的详细内容
 *     Sound - 警报的警报音的地址(Uri 类型)
 *     BeginTime - 在此时间点弹出警报信息(系统每隔一分钟会统一调度所有 ScheduledNotification 一次,也就是说系统会在 BeginTime 所指定时间点的一分钟之内弹出相关信息

)
 *     ExpirationTime - 警报的过期时间。当弹出警报警报后,如果用户选择了“推迟”,则一段时间过后还会继续弹出此次计划的警报信息,但是在此值所指定的时间点过后则永远不再弹出此次计划的

信息
 *     RecurrenceType - 弹出信息的时间计划类型。Microsoft.Phone.Scheduler.RecurrenceInterval 枚举:None|Daily|Weekly|Monthly|EndOfMonth|Yearly
 *     IsEnabled - 目前此值无用
 *     IsScheduled - 此 ScheduledAction 之后是否有执行计划(只读字段)
 *
 * ScheduledActionService - 管理 ScheduledAction 的类
 *     ScheduledActionService.GetActions<T>() where T : ScheduledAction - 查找系统中已注册的 ScheduledAction 类型的数据
 *     ScheduledAction.Find(string name) - 按名称查找指定的 ScheduledAction
 *     ScheduledAction.Remove(string name) - 按名称删除指定的 ScheduledAction
 *     ScheduledAction.Add(ScheduledAction action) - 注册一个新的 ScheduledAction
 *     ScheduledAction.Replace(ScheduledAction action) - 更新指定的 ScheduledAction
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls; 

using Microsoft.Phone.Scheduler; 

namespace Demo.BackgroundTask
{
    public partial class AlarmDemo : PhoneApplicationPage
    {
        public AlarmDemo()
        {
            InitializeComponent(); 

            this.Loaded += new RoutedEventHandler(AlarmDemo_Loaded);
        } 

        void AlarmDemo_Loaded(object sender, RoutedEventArgs e)
        {
            ShowRegisteredAlarm();
        } 

        // 显示程序中已有的 Alarm
        private void ShowRegisteredAlarm()
        {
            // IEnumerable<ScheduledNotification> notifications = ScheduledActionService.GetActions<ScheduledNotification>();
            IEnumerable<Alarm> alarms = ScheduledActionService.GetActions<Alarm>();
            lblMsg.Text = "程序中已注册的 Alarm 的名称为:" + string.Join(",", alarms.Select(p => p.Name).ToList());
        } 

        private void btnRegister_Click(object sender, RoutedEventArgs e)
        {
            // 查找程序中指定的 Alarm,如果没有则实例化一个
            Alarm alarm = ScheduledActionService.Find("alarm") as Alarm;
            if (alarm == null)
                alarm = new Alarm("alarm"); 

            // alarm.Title = "Alarm Title"; // Alarm 的 Title 属性无法修改
            alarm.Content = "Alarm Content";
            alarm.Sound = new Uri("/Assets/SuperMario.mp3", UriKind.Relative);
            alarm.BeginTime = DateTime.Now.AddMinutes(1);
            alarm.ExpirationTime = DateTime.Now.AddDays(1);
            alarm.RecurrenceType = RecurrenceInterval.Daily; ; 

            // 程序中如果有没有指定的 Alarm,则 Add,否则 Replace
            if (ScheduledActionService.Find("alarm") == null)
                ScheduledActionService.Add(alarm);
            else
                ScheduledActionService.Replace(alarm); 

            ShowRegisteredAlarm();
        }
    }
}

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索using
, system
, 时间
, 信息
alarm
windows phone、windowsphone、windows phone 10、windowsphone手机、windowsphone应用商店,以便于您获取更多的相关知识。

时间: 2024-10-27 02:23:44

与众不同windows phone (11)的相关文章

与众不同 windows phone (11) - Background Task(后台任务)之警报(Alarm)和提醒(Reminder)

原文:与众不同 windows phone (11) - Background Task(后台任务)之警报(Alarm)和提醒(Reminder) [索引页][源码下载] 与众不同 windows phone (11) - Background Task(后台任务)之警报(Alarm)和提醒(Reminder) 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之后台任务 Alarm - 警报 Reminder - 提醒 示例1.演示 Alarm(按一个

与众不同windows phone (40)

8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 介绍 与众不同 windows phone 8.0 之 媒体 添加音乐到音乐中心,从音乐中心删除音乐 与图片中心相关的新增功能 BackgroundAudioPlayer 的新增功能 示例 1.演示如何添加音乐 到音乐中心,以及如何从音乐中心删除音乐 MusicMediaLibrary/MusicMediaLibrary.xaml <phone:PhoneApplicationPage x:Class="D

与众不同windows phone (14)

Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成 介绍 与众不同 windows phone 7.5 (sdk 7.1) 之媒体 音频播放器 视频播放器 与 Windows Phone 的音乐和视频中心集成 示例 1.演示音频播放器 Audio.xaml <phone:PhoneApplicationPage x:Class="Demo.Media.Audio" xmlns="http://schemas.micros

与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成

原文:与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成 [索引页][源码下载] 与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之媒体 音频播放器 视频播放器 与 Windows Phone 的音乐

与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能

原文:与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 [源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows phone 8.0 之 媒体 添加音乐到音乐中心,从音乐中心删除音乐 与图片中心相关的新增功能 BackgroundAudioPlayer 的新增功能 示例

与众不同 windows phone (7) - Local Database(本地数据库)

原文:与众不同 windows phone (7) - Local Database(本地数据库) [索引页][源码下载] 与众不同 windows phone (7) - Local Database(本地数据库) 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之本地数据库 概述 演示如何使用"本地数据库" 示例1.概述Summary.xaml <phone:PhoneApplicationPage x:Class="De

与众不同 windows phone (10) - Push Notification(推送通知)之推送 Tile 通知, 推送自定义信息

原文:与众不同 windows phone (10) - Push Notification(推送通知)之推送 Tile 通知, 推送自定义信息 [索引页][源码下载] 与众不同 windows phone (10) - Push Notification(推送通知)之推送 Tile 通知, 推送自定义信息 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之推送通知 推送 Tile 通知 推送自定义信息 示例1.推送 Tile 通知客户端PushTil

与众不同 windows phone (46) - 8.0 通信: Socket, 其它

原文:与众不同 windows phone (46) - 8.0 通信: Socket, 其它 [源码下载] 与众不同 windows phone (46) - 8.0 通信: Socket, 其它 作者:webabcd 介绍与众不同 windows phone 8.0 之 通信 Socket Demo 获取当前连接的信息 http rss odata socket bluetooth nfc voip winsock 示例1.演示 socket tcp 的应用(本例既做服务端又做客户端)Com

与众不同 windows phone (17) - Graphic and Animation(画图和动画)

原文:与众不同 windows phone (17) - Graphic and Animation(画图和动画) [索引页][源码下载] 与众不同 windows phone (17) - Graphic and Animation(画图和动画) 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之画图和动画 图形 画笔 转换 动画 缓动 示例1.图形(Shape)ShapeDemo.xaml <phone:PhoneApplicationPage x