与 ProviderUpdateRequester() 一起使用的正确 ComponentName 是什么,以便 Android Wear 2.0 将更新我的并发症数据?

What is the right ComponentName to use with ProviderUpdateRequester() so Android Wear 2.0 will update my complication data?

要告诉 Android Wear Watch Face 我的复杂功能数据已更新,我需要使用 ProviderUpdateRequester() 方法,但它需要一个 ComponentName。哪个是正确的组件名称?

详情:

我正在为 Android Wear 2.0 中的并发症功能构建数据提供程序(并发症出现在表盘中)。

你可以通过manifest给系统提供一个更新周期,但是我想只在有新数据的时候更新数据。

它在 documentation"You can alternatively use a "推送样式中声明发送更新,而不是按固定时间表请求更新。为此,您可以设置更新period 为 0,因此计划的更新请求不会发生(或将其设置为非零值)并使用 ProviderUpdateRequester 根据需要触发对 onComplicationUpdate 的调用。".

但是,它没有给出要使用的正确 ComponentName 的片段。我已经试过了,但没有成功:

ComponentName.createRelative(MyService.this,MyService.class.getSimpleName());

这是您需要的代码:

ComponentName componentName =
  new ComponentName(getApplicationContext(), MyService.class);

我实际上写了一个示例来演示如何在 GitHub here 上执行此操作。

class 所做的工作是 UpdateComplicationDataService.java class

如果感兴趣,这里是完整的代码摘录:

ComponentName componentName =
  new ComponentName(getApplicationContext(), MyService.class);

ProviderUpdateRequester providerUpdateRequester = 
  new ProviderUpdateRequester(getApplicationContext(), componentName);

// This method only updates the specific complication id, you could
// update all with providerUpdateRequester.requestUpdateAll().
providerUpdateRequester.requestUpdate(complicationId);