`

wp wp8:后台任务

    博客分类:
  • wp
wp 
阅读更多
MScheduledTaskAgent项目下 ScheduledAgent.cs

using System.Diagnostics;
using System.Windows;
using Microsoft.Phone.Scheduler;
using Microsoft.Phone.Shell;
using System.IO.IsolatedStorage;
using System.IO;

namespace MScheduledTaskAgent
{
    public class ScheduledAgent : ScheduledTaskAgent
    {
        /// <remarks>
        /// ScheduledAgent 构造函数,初始化 UnhandledException 处理程序
        /// </remarks>
        static ScheduledAgent()
        {
            // 订阅托管的异常处理程序
            Deployment.Current.Dispatcher.BeginInvoke(delegate
            {
                Application.Current.UnhandledException += UnhandledException;
            });
        }

        /// 出现未处理的异常时执行的代码
        private static void UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
        {
            if (Debugger.IsAttached)
            {
                // 出现未处理的异常;强行进入调试器
                Debugger.Break();
            }
        }

        /// <summary>
        /// 运行计划任务的代理
        /// </summary>
        /// <param name="task">
        /// 调用的任务
        /// </param>
        /// <remarks>
        /// 调用定期或资源密集型任务时调用此方法
        /// </remarks>
        protected override void OnInvoke(ScheduledTask task)
        {
            try
            {
                ShellToast toast = new ShellToast();
                toast.Title = "title";
                toast.Content = "content";
                toast.Show();
               
            }
            catch {
           
            }

            NotifyComplete();
        }
    }
}

wp8BackgroundService项目 MainPage.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using wp8BackgroundService.Resources;
using Microsoft.Phone.Scheduler;

namespace wp8BackgroundService
{
    /// <summary>
    ///
    /// 1.在wmappmanifest.xml中配置
    /// <Tasks>
    ///  <DefaultTask Name="_default" NavigationPage="MainPage.xaml"/>
    ///  <ExtendedTask Name="BackgroundTask">
    ///    <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="MTaskAgent" Source="MScheduledTaskAgent" Type="MScheduledTaskAgent.ScheduledAgent" />
    ///  </ExtendedTask>
    ///</Tasks>
    ///     1.ScheduledTaskAgent固定
    ///     2.MTaskAgent要与当前类中SERVICE_NAME一致
    ///     3.MScheduledTaskAgent即dll名称
    ///     4.MScheduledTaskAgent.ScheduledAgent dll中执行类
    ///
    /// 2.在 解决方案 下 添加 新建项目 选择 计划任务代理
    /// 3.wp8项目 右键 设为启动项目
    /// 4.解决方案 生成解决方案 来生成dll文件
    /// 5.wp8项目 引用 右键 添加引用 解决方案 项目 勾选 确定
    ///
    /// </summary>
    public partial class MainPage : PhoneApplicationPage
    {
        // 构造函数
        public MainPage()
        {
            InitializeComponent();
          
        }

        private void start(object sender, RoutedEventArgs arg)
        {
            startService();
        }

        private String SERVICE_NAME = "MTaskAgent";

        private void startService()
        {
            PeriodicTask periodTask = ScheduledActionService.Find(SERVICE_NAME) as PeriodicTask;

            if(periodTask != null)
            {
                ScheduledActionService.Remove(SERVICE_NAME);
            }

            periodTask = new PeriodicTask(SERVICE_NAME);

            periodTask.Description = "后台任务";
            try
            {
                ScheduledActionService.Add(periodTask);
                ScheduledActionService.LaunchForTest(SERVICE_NAME, TimeSpan.FromSeconds(3));
                System.Diagnostics.Debug.WriteLine("后台任务启动");
            }
            catch(Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }

           

        }
    }
}

wmappmanifest.xml

<Tasks>
      <DefaultTask Name="_default" NavigationPage="MainPage.xaml"/>
      <ExtendedTask Name="BackgroundTask">
        <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="MTaskAgent" Source="MScheduledTaskAgent" Type="MScheduledTaskAgent.ScheduledAgent" />
      </ExtendedTask>
    </Tasks>



这样 项目退出之后 也会处理

分享到:
评论

相关推荐

    wp7后台开发实例

    - **ScheduledTaskAgent**:这是WP7中实现后台任务的基础类,继承自`Microsoft.Phone.Scheduler.ScheduledTaskAgent`,并重写`OnInvoke`方法,这里会执行实际的后台任务。 - **注册后台任务**:应用需要在启动时...

    WP8系统上的VOIP应用

    WP8系统支持多任务处理,拥有良好的硬件兼容性和高效的资源管理。 2. **VOIP技术基础** VOIP(Voice over Internet Protocol)是一种通过互联网传输语音数据的技术,它将模拟语音信号转换为数字信号,然后在互联网...

    wp-background-processing:WordPress后台处理类

    WP后台处理 WP 后台处理可用于触发非阻塞异步请求或作为后台处理工具,允许您对任务进行排队。 查看或阅读。 灵感来自。 需要 PHP 5.2+ 安装 在你的项目中安装这个库的推荐方法是通过 Composer 加载它: ...

    WP8 下载网络音频到独立存储空间中播放示例

    6. **代理激活**:在`WMAppManifest.xml`文件中,我们需要配置后台服务,指定音频代理作为后台任务。这使得应用能够接收并响应系统发送的后台播放事件。 7. **状态管理**:由于音频播放是在后台进行的,所以必须...

    NEIC WP8 资料

    在用户体验方面,WP8系统提供了多任务处理能力,让用户可以同时运行多个应用。资料可能会指导如何优化应用以适应这一特性,确保应用在后台运行时仍能保持低功耗和高效性能。 总的来说,【NEIC WP8 资料】是一个全面...

    WP7 codeproject app .zip

    8. **WP7特定功能**:可能包含利用WP7特有的功能,如通知服务、Live Tiles、多任务处理等。 9. **源代码组织**:解压后,观察文件结构可以学习到良好的项目组织和代码管理实践。 10. **许可证和贡献**:...

    wordpress采集插件wp-autopost-pro wordpress4.9以上版本完美使用

    9. **交互界面**:`wp-autopost-page.php`可能涉及插件的后台管理界面,提供用户友好的操作面板,方便设置和监控采集任务。 10. **JavaScript支持**:`wp-autopost-js.php`可能包含了插件前端部分的JavaScript代码...

    WP8入门到精通

    第四章《特性》详述了WP8平台的一些独特功能,如Live Tiles、通知中心、后台任务等,这些特性让WP8应用能够与用户进行更丰富的互动。 第五章《数据存储、网络、推送》涉及了数据持久化、网络通信和推送通知技术。...

    wp-autopost.2.9.2_wp-autopost.2.9.2_wp采集_源码

    用户在WordPress后台插件管理界面安装并激活后,可以通过插件设置页面进行配置。其中,"wp-autopost-po"文件可能是插件的多语言包,使得非英语用户也能方便地使用。而"wp-autopost"则是插件的核心代码,包含所有功能...

    wp-gatewayapi:GatewayAPI.com的Wordpress插件

    10. **用户界面设计**:插件可能需要提供WordPress后台的设置页面,让用户配置API密钥、短信模板等,这就涉及到WordPress的后台UI设计。 综上所述,"wp-gatewayapi"插件的开发涵盖了PHP编程、WordPress插件开发、...

    wp-docklines::spouting_whale:运行WordPress开发环境的Docker映像

    4. **Shell脚本支持** - 提供Shell脚本工具,帮助开发者执行常见的WordPress管理任务,如更新插件、主题或数据库。 ### 使用步骤 1. **下载与解压** - 获取`wp-docklines-master`压缩包并解压到本地目录。 2. **...

    wp8的天气预报源码

    通过学习这个源码,初学者不仅可以掌握WP8应用开发的基础,还能了解如何使用网络服务获取数据、动态构建UI、处理异步任务等高级技术。同时,对于数据绑定、本地存储和错误处理的理解也会有所加深,这对于提升开发者...

    史上最全wp开发资料集_WindowsPhone7

    10. **多任务和墓碑机制**:WP7的多任务处理采用墓碑机制,当应用被挂起时,系统会保存状态以便恢复。开发者需要了解如何正确处理这种机制,以确保应用在后台和恢复时的行为。 11. **设备交互**:包括位置服务、...

    all-in-one-wp-migration-file-extension.zip

    首先,你需要在WordPress后台安装并激活All-in-One WP Migration主插件,然后下载并安装File Extension扩展。一旦设置完毕,你就可以通过插件界面创建备份,并在需要时将超大的备份文件导入到目标站点,实现无缝迁移...

    wordpress插件 wprobot自动博客插件

    - **安装与激活**: 首先,从WordPress插件市场下载WPRobot插件,然后通过WordPress后台进行安装和激活。 - **配置设置**: 进入插件设置页面,设置采集源、过滤规则、发布时间等参数。用户可以根据自己的博客主题和...

    WP7有约源码

    6. **多任务处理**:了解WP7的后台任务和服务,以及如何在应用中实现它们。 7. **通知机制**:学习如何利用Toast通知、Tile更新和Push通知增强用户体验。 8. **性能优化**:学习如何编写高效的代码,减少内存占用,...

    wordpress robot (wp robot3.1最新版本)

    1. **下载与安装**:首先从官方渠道获取WP Robot 3.1的安装包,然后在WordPress后台的插件管理页面进行上传安装,激活插件。 2. **配置设置**:安装完成后,需进入插件的设置页面,配置数据源、内容过滤规则、SEO...

    wp user frontend pro汉化版2.1.8.zip

    2. **WP User Frontend Pro**:这是一个高级WordPress插件,允许网站访客在前端完成各种通常需要后端管理面板操作的任务,如注册、登录、提交文章、编辑个人资料、支付等,提升了用户体验。 3. **用户交互**:此...

    WPF 仿wp8 加载进度条动画效果

    在本文中,我们将深入探讨如何使用Windows Presentation Foundation (WPF) 实现仿Windows Phone 8 (wp8) 的加载进度条动画效果。WPF是.NET Framework中的一个强大的UI框架,它提供了丰富的图形和动画功能,使得...

    wordpress自动采集发布插件wp-o-matic汉化版

    2. **上传安装**:将下载的插件文件上传至WordPress的`wp-content/plugins`目录,通过后台的插件页面激活。 3. **配置规则**:在插件设置中添加RSS源,设置过滤和映射规则,以及发布选项。 4. **测试运行**:在...

Global site tag (gtag.js) - Google Analytics