HarmonyOS 应用开发之API切换&Context接口切换

本文介绍了FA模型和Stage模型在Ohos框架中的区别,特别关注了FA模型特有的接口在迁移到Stage模型时的替换策略,通过startAbility接口的示例展示了如何进行切换,并提到了Context接口在两个模型中的变化。同时,文章还提及了鸿蒙开发的学习资源和常见面试题点。
摘要由CSDN通过智能技术生成

概述

FA模型和Stage模型由于线程模型和进程模型的差异,部分接口仅在FA模型下才能使用,针对这部分接口在SDK的接口中有FAModelOnly的标记,用于提醒开发者这部分接口仅能在FA模型下使用。因此在切换到Stage模型时,需要将应用中用到的FAModelOnly接口替换成Stage模型下对应的接口。下面是startAbility的接口切换示例,全量接口列表请查看后续章节:

startAbility接口由FA模型切换到Stage模型的示例:

  • FA模型示例
import featureAbility from '@ohos.ability.featureAbility';
import Want from '@ohos.app.ability.Want';
import Logger from '../../utils/Logger';

const TAG: string = 'PagePageAbilityFirst';

@Entry
@Component
struct Index {
  
  build() {
    // ...
    Button() {
      // ...
    }
    .onClick(async () => {
      try {
        Logger.info(TAG, 'Begin to start ability');
        let want: Want = {
          bundleName: 'com.samples.famodelabilitydevelop',
          moduleName: 'entry',
          abilityName: 'com.samples.famodelabilitydevelop.PageAbilitySingleton'
        };
        await featureAbility.startAbility({ want: want });
        Logger.info(TAG, `Start ability succeed`);
      }
      catch (error) {
        Logger.error(TAG, 'Start ability failed with ' + error);
      }
    })
  }
}
  • Stage示例示例
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BusinessError } from '@ohos.base';

@Entry
@Component
struct Index {
  private context = getContext(this) as common.UIAbilityContext;

  build() {
    // ...
    Button() {
      // ...
    }
    .onClick(() => {
      // context为Ability对象的成员,在非Ability对象内部调用需要
      // 将Context对象传递过去
      let wantInfo: Want = {
        bundleName: "com.example.myapplication",
        abilityName: "EntryAbility"
      };
      this.context.startAbility(wantInfo).then(() => {
        console.info('startAbility success.');
      }).catch((error: BusinessError) => {
        console.error('startAbility failed.');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值