后台任务使用与应用程序相同的数据提供者

Posted

技术标签:

【中文标题】后台任务使用与应用程序相同的数据提供者【英文标题】:Background Task using the same data provider as application 【发布时间】:2014-09-02 09:55:40 【问题描述】:

在我的解决方案中,我有三个项目:应用程序、提供数据的类库和用于后台任务的 Windows 运行时组件。问题是,我需要机器人应用程序和后台任务才能使用数据提供者。这以“应用程序调用了为不同线程编组的接口”结束。 Dispatcher 并不是一个很好的解决方案,因为我无法在 Dispatcher 中重新运行某些内容。

后台任务很少被调用,那么是否可以解组数据提供接口,以便后台任务可以获取其数据?如果是 - 怎么做,如果不是 - 我还能做什么?

【问题讨论】:

你使用什么样的数据?是内存中的东西还是与某些外部资源(如数据库)的连接 我通过 JSON 从我的 API 获取数据。数据提供效果很好 - 问题是当后台任务需要它时,因为它已经为应用程序编组了。 【参考方案1】:

你有两个选择:

    确保使用包装类将来自后台线程的调用编组到适当的线程。通常这意味着编写一个将原始对象作为参数的类,在自己的结构中复制其类接口,但在直接调用方法之前检查访问。

    创建一个可以在后台线程上调用的新数据适配器。

这些选项中的任何一个都可以解决您的问题。

【讨论】:

这可能会有很大的问题。应用程序已本地化,我在数据提供程序中使用 Resources.resw。因此,使用两个单独的数据适配器会让我再次进入编组接口。

以上是关于后台任务使用与应用程序相同的数据提供者的主要内容,如果未能解决你的问题,请参考以下文章

Heroku:使用 RQ 的 Python 后台任务

windows store 应用中的后台任务

Django后台任务

Android中使用IntentService运行后台任务

Android中使用IntentService运行后台任务

如何使用数据任务实现后台提取?