为啥重启我的设备后 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

Windows phone 8 推送通知空通道 uri

Windows Phone 8 中的 GetDistanceTo 去了哪里?

Windows Phone 8 应用程序的临时分发