为啥重启我的设备后 Windows Phone 8.1 后台任务不起作用?
Posted
技术标签:
【中文标题】为啥重启我的设备后 Windows Phone 8.1 后台任务不起作用?【英文标题】:Why Windows Phone 8.1 Background Tasks don't work after rebooting my device?为什么重启我的设备后 Windows Phone 8.1 后台任务不起作用? 【发布时间】:2016-04-06 14:30:51 【问题描述】:我在我的 Xamarin Forms 项目中实现了 Windows Phone 8.1(无 Silverlight)上的后台任务,除非您重新启动设备,否则它工作正常。
关于项目:
Xamarin Forms 项目(带有最新的 XF 库)
已添加 WinRT 项目以创建后台任务。
我已经修改了 WP 项目的清单,以便按照教程中的说明设置新的后台任务。
我的设备:诺基亚 Lumia 925 - Windows Phone 8.1
当我运行我的应用程序时,它运行良好,我关闭它并每 15 分钟触发一次通知。但是我重新启动了我的设备,后台任务消失了。该应用程序也部署在发布和调试模式下,我已授予“在省电模式开启时在后台模式事件上运行”的权限。
测试概念:
我还发现了一个非常奇怪的行为,使用测试 WinPhone 8.0 项目我尝试添加计划任务代理(使用 Silverlight)项目,由于某种原因,它被添加为“计划任务代理(Windows Phone 8.0)”和该代理在重新启动后保留我的后台任务并且一切正常。我认为WinPhone 8.0一直使用Silverlight,如有错误请指正!
我尝试对我的 WinPhone 8.1(无 Silverlight)项目以相同的方式使用 Silverlight 添加计划任务项目,但我无法引用它,因为它们是不同的编译 dll(Silverlight DLL 和 .NET CLR),这是正确的.
有什么想法可以在重启后保留我的任务吗?
提前致谢!
【问题讨论】:
【参考方案1】:根据这个问题:
“在 Windows Phone 7 中启动应用程序的唯一方法是响应用户操作。”
Is there something like AlarmManager(android) in WindowsPhone7 mango, which will launch the app when the alarm goes off?
对于 Windows Phone 8,根据另一个问题,有一个“后台代理”,您可以每 30 分钟左右设置一次:
is there any boot complete event in windows phone 8
希望这会有所帮助。
【讨论】:
感谢马里奥!但我已经实现了后台代理,正如我所解释的(关于测试概念),它只适用于 WP Silverlight 项目。当我重新启动设备时,我也需要在我的 WP 8.1(无 silverlight)上运行后台任务。以上是关于为啥重启我的设备后 Windows Phone 8.1 后台任务不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Windows Phone 8.1 应用程序部署到 Windows 10 移动设备?
为啥 Windows Phone 8 模拟器不能在 Windows 8.1 中运行?
在 Windows Phone 8.1 上连接和断开蓝牙 BLE