WP8开发札记(二)让程序支持锁屏运行
我们都知道WP8是采用墓碑机制来管理应用程序的。
当我们把手机锁屏了,默认情况下,App就触发了deactivated 事件,准备被墓碑化了。
但是,有些时间我们不想让程序就此终止运行。(比如说,你开发了一个计步器类App,总不能让用户在跑步的时候一直手握着手机来保持手机不锁屏吧,相反的是,用户需要的是可以把手机锁屏,揣在裤袋里,再开始跑步。)
这时候,就需要PhoneApplicationService 类来帮忙了。
我们来看看MSDN文档对其的定义:PhoneApplicationService 类提供对应用程序生存期各个方面的访问。这包括对应用程序空闲行为的管理以及当应用程序变为活动或不活动时对应用程序状态的管理。很不错,微软提供了相关的类来对生存周期进行管理。接下来,我们就来研究如何使用了。
在App.xaml.cs里,我们发现了以下代码:
测试之后发现这段代码的作用是让App运行期间不监听物理锁屏按键。这不能直接拿来用,如果一个app会让屏幕一直长亮,用户第一件事就是把他删了(谁家手机经得起这样耗电?不是所有手机都是Nokia 1050的。)经过查看代码定义可以发现,我们真正需要的代码是:
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
这段代码让app停用应用程序侦测模式,这样一来,锁屏状态下应用程序照样可以运行了,跑步爱好者也就能够把手机揣在裤袋里,大胆的跑步了。
WP8开发札记(二)让程序支持锁屏运行的更多相关文章
- Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
- WP8开发札记(一)WP8应用生命周期管理
在介绍生命周期前,我们先了解两个相关的概念. 1.墓碑机制:WP8与Android采用的真后台机制不同,WP8采用的是墓碑机制.一旦从当前应用程序离开(非退出),该应用会被墓碑化,这样可以更好的管理( ...
- web桌面程序之锁屏功能分析
这是一个在操作系统里比较常见的功能,但在web里实现,有哪些需要注意的呢? 1.如何真正的实现锁屏? 2.如何避免通过技术手段绕过锁屏? 我个人总结出2点需要特别注意的地方,下面就分别进行分析. 第一 ...
- iOS开发之应用内检测手机锁屏,解锁状态
iPhone的锁屏监测分为两种方式监听: 1. 程序在前台,这种比较简单.直接使用Darwin层的通知就可以了: #import <notify.h> #define Notificati ...
- Delphi IOS MusicPlayer 锁屏运行学习
[weak] FMusicPlayer: TMusicPlayer; [weak]修饰, 编译器在处理这个变量的时候不会调用该变量内容的__ObjAddRef和__ObjRelease., proce ...
- wp8开发笔记之应用程序真机发布调试
写在前面的话: 相信很多和我一样关注wp8动态以及已经开发了一些wp8应用程序的朋友们都遇到过这样的问题,写的程序在模拟器上进行调试总是显的没什么说服力,想拿真机进行实际测试, 该怎么办才好呢? 进行 ...
- OSGI企业应用开发(二)Eclipse中搭建Felix运行环境
上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...
- 【Linux开发】【Qt开发】嵌入式Qt程序使用触屏或USB鼠标方式
上文<嵌入式Qt开发-移植到ARM开发板 >介绍了Qt程序的移植,本文再说下如何使开发板Qt程序使用触摸屏或USB方式进行交互. 之前刚把一个qt程序移植到arm板上成功运行显示时就开心的 ...
- ios程序,顶部和底部产生空白——程序不能全屏运行
在开发过程中,遇到过这样的问题,整个程序不能以全屏状态运行,顶部和底部出现空白,如下图所示: 这样的原因是:设置的启动页不合适,设置大小合适的启动页就好了
随机推荐
- 【OC学习-12】什么是类的继承?为什么要继承?以及继承里面的注意事项
(1)怎样实现类的继承? //之前的继承根类,如类ASStudent继承自根类 @interface ASStudent:NSObject{ } @end //如今继承现有自己定义的类,如ASStud ...
- [Elasticsearch] 分布式文件存储
本文翻译自Elasticsearch官方指南的distributed document store一章. 分布式文档存储 在上一章中,我们一直在介绍索引数据和获取数据的方法.可是我们省略了非常多关于数 ...
- Self referencing loop detected with type
json.net namespace EFDAL{ using System; using System.Collections.Generic; using Newtonsoft. ...
- 我的MYSQL学习心得(十二)
原文:我的MYSQL学习心得(十二) 我的MYSQL学习心得(十二) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYS ...
- perconaXTRADB Cluster在Redhat Linux上的安装
installing-perconaXTRADB Cluster 5.6 For Redhat 6.4 一.server版本号查看 Root# cat /etc/redhat-release Red ...
- 关于UtilTimerStack类的使用--XWork2、Struts2内置性能诊断类
关于UtilTimerStack类的使用--XWork2.Struts2内置性能诊断类 一.UtilTimerStack做什么用的? 这个本来是Xwork2(Struts2的核心)的相关的工具类,可以 ...
- java ResultSet 结果集处理 createStatement() 里参数的意义(第一弹)
createStatement(int resultSetType,int resultSetConcurrency)参数一:结果集类型可取值: 1.ResultSet.TYPE_FORWOR ...
- Sample Page
This is an example page. It's different from a blog post because it will stay in one place and will ...
- IntelliJ IDEA 13 破解安装(JRebel 5.6.3a皴)
首先安装IntelliJ 13,记住下载Ultimate Edition版本号,否则就必须打破.. 安装到本地.然后一些配置(这一步不能.不过考虑到交换系统后,保存,建议做) 打开{install ...
- leetcode第31题--Longest Valid Parentheses
Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...