仅在 Visual Studio 中激活时才调用后台任务
Posted
技术标签:
【中文标题】仅在 Visual Studio 中激活时才调用后台任务【英文标题】:Background task only called when activated in visual studio 【发布时间】:2015-08-24 06:52:05 【问题描述】:我有一个用于轮询错误的后台服务。
此后台任务仅在我在调试时激活它时触发。
这里是服务的注册
以及服务本身
我是否以错误的方式调用服务?为什么只有在我在 Visual Studio 中激活它时才会触发? 我做错了什么?
【问题讨论】:
您使用的时间间隔(以分钟为单位)? 间隔可以是可变的,但至少为 15 你是否在包清单中声明了后台任务? 任务仅在我在 Visual Studio 中激活它时才会触发(第一张图片)可以多次重新触发它。所以如果我能知道当我按下它时实际发生了什么,我可能会解决我的问题 是的,后台任务已声明 【参考方案1】:我将在这里添加一些我注意到的点,您需要在代码中考虑这些点。
1-您需要在此行之后检查访问是否被拒绝
var result = await BackgroundExecutionManager.RequestAccessAsync();
if(result != BackgroundAccessStatus.Denied)
2- 您正在注册时间触发器,OneShot 属性等于 true,在您的情况下“轮询”应该为 false,否则它将只运行一次。
taskBuilder.SetTrigger(new TimeTrigger(15, false));
3- 如果您显示任何 toast,请在包清单中添加 Toast Capable,对 Badge 执行相同操作(如果您正在更新徽章)。
【讨论】:
以上是关于仅在 Visual Studio 中激活时才调用后台任务的主要内容,如果未能解决你的问题,请参考以下文章
只有在 Visual Studio 之外运行 EXE 时才会出现发布错误