【HarmonyOS应用开发】【HCIA认证】模拟题每日1练(第9题)

 

Intent是HarmonyOS应用开发中的一个重要概念。很多朋友都对Intent不是很理解。其实,Intent非常得简单,他的中文意思是"意图",直白地说,就是"你想做什么",只需要把你想做的事情封装到Intent中就可以了。大家看这张表:

 

Intent中封装的内容包括两大类,一类是执行的操作,一类是传递的参数。对于要执行的操作,包括七部分,分别是:Action、Entity、Uri、Flags、BundleName、AbilityName、DeviceId。

大家来看示例代码:

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        Button btn = (Button) findComponentById(ResourceTable.Id_btn);
        btn.setClickedListener(component -> {
            List<String> onlineDeviceIdList = DeviceUtils.getOnlineDeviceIdList();
            if (onlineDeviceIdList != null && !onlineDeviceIdList.isEmpty()) {
                String remoteTargetDeviceId = onlineDeviceIdList.get(0);
                Intent remoteIntent = new Intent();
                Operation operation = new Intent.OperationBuilder()
                        .withDeviceId(remoteTargetDeviceId)
                        .withBundleName(getBundleName())
                        .withAbilityName(SecondAbility.class.getName())
                        .withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE)
                        .build();
                remoteIntent.setOperation(operation);
            }
        });
    }
}

在封装要执行的操作时,常用的做法是:首先,构造一个Intent.OperationBuilder()的实例,然后,链式调用多个方法。例如,调用方法withDeviceId(),传入参数remoteTargetDeviceId,指定远程设备的id;调用方法withBundleName(),传入参数getBundleName(),指定应用的包名;调用方法withAbilityName(),传入参数SecondAbility.class.getName(),指定远程Page的类名;调用方法withFlags(),传入参数Intent.FLAG_ABILITYSLICE_MULTI_DEVICE,设置支持分布式的标记,以设置该应用支持分布式调度;最后,调用方法build(),构造一个Operation类型的实例,赋值给变量operation。这样,就将remoteIntent相关的操作都封装在了operation中,只需要再调用remoteIntent的方法setOperation(),把operation指定为参数就可以了。

所以,这道题的答案是A、B、C、D。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

刘玥de技术分享

您的打赏鼓励是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值