gpt4 book ai didi

android - 如何知道我的 Android SmartWatch 扩展程序是否处于非 Activity 状态?

转载 作者:搜寻专家 更新时间:2023-11-01 07:36:28 25 4
gpt4 key购买 nike

我正在使用 Notification API 开发 RSS 智能扩展应用程序。我想知道如何获取我的智能扩展的 Activity/非 Activity 状态(在 SmartWatch 应用程序中单击我的 RSS 智能扩展时的第一个复选框)。

NotificationAPI 示例使用额外的复选框首选项来启动或不启动服务下载数据生成通知,但我不想强制用户进入子菜单并激活数据下载。如果用户激活我的 RSS 智能扩展,他已经期望扩展会在 RSS 中有一些新项目时通知他。

有一个回调可以知道我的智能扩展何时被正确添加到 liveware/smartwatch 应用程序 (onRegisterResult),但我没有找到回调可以知道智能扩展是否真的处于 Activity 状态。

提前致谢!

最佳答案

Smart Extension SDK 的 SampleNotificationExtension 提供了一些示例:

  • 如何通过内容提供商向驻留在 Liveware Manager 应用程序(智能扩展 API 的中心)中的通知数据库添加/更新/删除/读取数据

    <
  • 如何响应用户在智能 watch 上打开通知的事件,例如按下操作按钮

在示例扩展中,有一项服务每 10 秒向通知数据库提供一次数据,然后显示在智能 watch 设备上。首选项 Activity 中的开/关设置仅用于启动和停止为数据库提供数据的循环。

好的。

所以我猜您想订阅 RSS 提要,并且当新帖子到达时,您希望将它们传播到智能 watch 。您可能需要启动一个服务,就像示例中那样,并且只要 watch 连接到手机,您就应该让该服务运行。您可以在此处指定:

@Override
protected boolean keepRunningWhenConnected() {
return true;
}

如果您使用 SmartExtension 实用程序类,您的扩展将自动注册并启动您的服务。在示例扩展中,注册扩展后,会检查用户是否通过首选项激活了扩展。

@Override
public void onRegisterResult(boolean result) {
/.../
boolean isActive = prefs.getBoolean(
getString(R.string.preference_key_is_active), false);
if (isActive) {
startAddData();
}
}

如果你愿意,你可以保留它,但这不是必需的。如前所述,它仅用于启动和停止数据馈送。无论如何,您可以在注册后开始 RSS 检查。

If the user activates my RSS smart extension, he already expects the extension to notify him if there's some new items into the RSS.

服务启动时,您可以检查通知数据库中的内容与 RSS 提要中的内容之间的差异。

好吧,很长的答案,希望对您有所帮助!

关于android - 如何知道我的 Android SmartWatch 扩展程序是否处于非 Activity 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10514095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com