0

我想在用户指定的某个时间仅在可穿戴应用程序中显示通知。

为了进行测试,我在手持应用程序中有一个 BroadcastReceiver,它启动服务并在当时在手持设备和可穿戴设备中显示通知。我还在手持模块和可穿戴模块之间建立了 Message Api 通信。这两个部分工作正常。

所以我不知道当 BroadcastReceiver 被触发时我是否可以通过 Message Api 发送消息以便仅在可穿戴设备中显示通知。我应该在 onReceive() 方法中启动 GoogleApiClient 吗?或者有没有其他方法可以做我想做的事?

这是我的 BroadcastReceiver,但我想更改它的代码:

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Intent service = new Intent(context, AlarmService.class);
        service.putExtra(AlarmService.INTENT_NOTIFY, true);
        service.putExtra("alarmID", intent.getIntExtra("alarmID", 0));
        context.startService(service);
    }
}

谢谢!

4

1 回答 1

0

我建议不要在 onReceive 内部启动 GoogleApiClient - onReceive 在 UI 线程上执行,并且将消息发送到可穿戴设备可能太耗时,这不是一个好主意。

听起来,一旦您从用户那里获得了目标时间,就不再需要手持设备了,对吗?只有可穿戴设备在目标时间做任何事情,对吗?

如果是这样,我建议以下内容:

  1. 手持用户指定目标时间后,使用消息传递 API 将该值发送到可穿戴设备
  2. 当穿戴式应用接收到目标时间戳时,穿戴式应用使用AlarmManager在那个时候触发广播
  3. 在可穿戴应用中设置一个BroadcastReceiver来接收AlarmManger的广播
  4. 在BroadcastReceiver(在可穿戴应用程序中),直接在可穿戴设备上生成通知
于 2014-11-14T02:04:00.470 回答