0

为了告诉 Android Wear Watch Face 我的并发症数据已经更新,我需要使用 ProviderUpdateRequester() 方法,但它需要一个 ComponentName。哪个是正确的组件名称?

细节:

我正在为 Android Wear 2.0 中的 Complications 功能构建一个数据提供程序(并发症出现在 Watch Faces 中)。

您可以通过清单向系统提供更新周期,但我只想在有新数据时更新数据。

它在文档中指出,“您也可以使用“推送样式”来发送更新,而不是按固定时间表请求更新。为此,您可以将更新周期设置为 0,这样就不会发生预定的更新请求(或将其设置为非零值)并根据需要使用 ProviderUpdateRequester 触发对 onComplicationUpdate 的调用。”。

但是,它没有提供要使用的正确 ComponentName 的片段。我试过这个没有运气:

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

1 回答 1

2

这是您需要的代码:

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

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

完成工作的类是UpdateComplicationDataService.java 类

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

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);
于 2016-09-13T22:38:29.973 回答