举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > 鸿蒙启动流程 鸿蒙OS 启动Service

鸿蒙启动流程 鸿蒙OS 启动Service

2023-05-01 19:18 鸿蒙OS开发文档

鸿蒙启动流程 鸿蒙OS 启动Service

鸿蒙启动流程 鸿蒙OS 启动Service

鸿蒙启动流程

介绍通过startAbility()启动Service以及对应的停止方法。

  • 启动Service

Ability为开发者提供了 startAbility() 方法来启动另外一个 Ability。因为Service也是 Ability 的一种,开发者同样可以通过将 Intent 传递给该方法来启动 Service。不仅支持启动本地 Service,还支持启动远程 Service。

开发者可以通过构造包含 DeviceId、BundleName 与 AbilityName 的 Operation 对象来设置目标 Service 信息。这三个参数的含义如下:

  • DeviceId:表示设备 ID。如果是本地设备,则可以直接留空;如果是远程设备,可以通过 ohos.distributedschedule.interwork.DeviceManager 提供的 getDeviceList 获取设备列表,详见《 API 参考》。
  • BundleName:表示包名称。
  • AbilityName:表示待启动的 Ability 名称。

启动本地设备 Service 的代码示例如下:

  Intent intent = new Intent();
  Operation operation = new Intent.OperationBuilder()
          .withDeviceId("")
          .withBundleName("com.huawei.hiworld.himusic")
          .withAbilityName("com.huawei.hiworld.himusic.entry.ServiceAbility")
          .build();
  intent.setOperation(operation);
  startAbility(intent);

启动远程设备 Service 的代码示例如下:

  Operation operation = new Intent.OperationBuilder()
          .withDeviceId("deviceId")
          .withBundleName("com.huawei.hiworld.himusic")
          .withAbilityName("com.huawei.hiworld.himusic.entry.ServiceAbility")
          .withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE) // 设置支持分布式调度系统多设备启动的标识
          .build();
  Intent intent = new Intent();
  intent.setOperation(operation);
  startAbility(intent);

执行上述代码后,Ability 将通过 startAbility() 方法来启动 Service。

  • 如果 Service 尚未运行,则系统会先调用 onStart()来初始化 Service,再回调 Service 的 onCommand() 方法来启动 Service。
  • 如果 Service 正在运行,则系统会直接回调 Service 的 onCommand() 方法来启动 Service。

  • 停止 Service

Service 一旦创建就会一直保持在后台运行,除非必须回收内存资源,否则系统不会停止或销毁 Service。开发者可以在 Service 中通过 terminateAbility() 停止本 Service 或在其他 Ability 调用 stopAbility() 来停止 Service。

停止 Service 同样支持停止本地设备 Service 和停止远程设备 Service,使用方法与启动 Service 一样。一旦调用停止 Service 的方法,系统便会尽快销毁 Service。

阅读全文
以上是编程学为你收集整理的鸿蒙启动流程 鸿蒙OS 启动Service全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部