代码之家  ›  专栏  ›  技术社区  ›  phreed

(最佳)向自定义内容提供程序传递控制消息的方法

  •  1
  • phreed  · 技术社区  · 14 年前

    Android内容提供商有针对普通嫌疑人的方法插入、删除、查询、更新,但如果我想发送控制消息,则没有明显的机制。 假设需要重置、清除和重新加载由管理的表之一。 怎么能做到?我有几种方法,每一种都有点老土。

    1)为作业创建活动(或服务/接收者)。 该活动执行批量删除和插入。 这看起来是最简单的,但是当内容提供者启动时,数据库助手会创建表并初始化它们。
    在内容提供程序的数据库助手和单独的活动中复制初始化代码似乎效率低下。

    2)劫持内容提供商API。 可以在insert(或update/query/delete)方法将调用无法访问的方法的位置创建一个虚拟表。

    3)使用多重继承使内容提供者也成为服务(或活动)。 这可能是最接近我想要的,但我不知道怎么做。 感觉很危险,尤其是当它是一种活动时。

    4)有一个服务内容提供者对 类似于(3),但希望没有疣。 服务将有AIDL来完成所有控制类型的事情。 例如,加载查找表、清除表、清除过期的元组… 如果这样做了,服务将如何启动?由内容提供商提供?

    1 回复  |  直到 14 年前
        1
  •  1
  •   CommonsWare    14 年前

    ContentProvider

    BroadcastReceiver getContext().registerReceiver()

    Context getContext()