C# 控制WP8中任何条件下的应用程序执行

C# 控制WP8中任何条件下的应用程序执行,c#,xaml,windows-phone-8,windows-phone,C#,Xaml,Windows Phone 8,Windows Phone,我正在尝试为Windows Phone 8构建一个基本的跟踪应用程序。但是我不知道该用哪种型号。应用程序应以可定义的间隔(例如5秒甚至2小时)记录位置 如果我将应用程序开发为前台应用程序,如果用户打开另一个程序、屏幕锁定(您可以将应用程序配置为在锁定屏幕下继续运行)或您收到电话,跟踪将停止。总体而言,应用程序未被执行的风险非常高 还有一些由操作系统安排的后台任务,根据手机的当前状态,这些任务只允许运行几秒钟或几分钟。是否有一些变通办法来安排用户定义的后台任务执行?例如,电子邮件客户端可以设置为每

我正在尝试为Windows Phone 8构建一个基本的跟踪应用程序。但是我不知道该用哪种型号。应用程序应以可定义的间隔(例如5秒甚至2小时)记录位置

如果我将应用程序开发为前台应用程序,如果用户打开另一个程序、屏幕锁定(您可以将应用程序配置为在锁定屏幕下继续运行)或您收到电话,跟踪将停止。总体而言,应用程序未被执行的风险非常高

还有一些由操作系统安排的后台任务,根据手机的当前状态,这些任务只允许运行几秒钟或几分钟。是否有一些变通办法来安排用户定义的后台任务执行?例如,电子邮件客户端可以设置为每15分钟提取一次电子邮件,因此必须有某种方法

第三个选项是使用推送通知服务。然而,这似乎很愚蠢,因为必须涉及某些第三方Microsoft服务器,并且可能会应用其他限制。更重要的是,应用程序必须运行才能接收通知

这方面的最佳实践是什么?只要应用程序能正常工作,我不在乎电池消耗。对于需要更频繁更新的瓷砖,必须存在类似的解决方案(30分钟或更长时间似乎很长)?我错过什么了吗


一个可以调用自己的
睡眠
的基本应用程序会很棒,但如果几秒钟后它被杀死,那就不行了。或者睡眠时间不算吗?

恐怕您无法确保应用程序的执行

  • 标准的前台应用程序总是不如来电这样重要,所以您必须假设它可以随时暂停或停止。你也不能强迫用户使用你的应用程序-这就是为什么用户可以随时退出应用程序

  • Windows Phone上的后台执行不能永久化——这就是操作系统的设计方式。邮件应用程序不是一个好例子,因为它是一个内置应用程序。它是作为该系统的一部分制作的,因此它有另一套规则(如果有的话)

  • 我真的看不到使用推送通知来实现这一点的方法。但即使有一个,我相信这不是该如何使用该功能


  • 我想使用带有推送通知的平铺更新来触发自己的代码。但我只是注意到tile更新内容从未传递到应用程序。。。太糟糕了。Skype也遵守这些规则吗?如果您使用Skype呼叫WP8,它会弹出一个窗口…不,Skype使用VoIP API:谢谢。我刚刚发现了另一个漏洞,允许位置跟踪应用程序在后台运行,但限制不太严格。参见链接