SkillStage はモジュール レベルのコンポーネント コンテナーです。アプリケーションの HAP は、初めてロードされるときに、AbilityStage インスタンスを作成し、モジュールの初期化やその他の操作を行うことができます。
アビリティステージはモジュールと 1 対 1 で対応します。つまり、モジュールには 1 つのアビリティステージがあります。
アビリティステージは、DevEco Studio のデフォルトプロジェクトでは自動生成されませんので、アビリティステージの機能を使用する必要がある場合は、手動で新しいアビリティステージファイルを作成することができます。具体的な手順は次のとおりです。
1. プロジェクト モジュールに対応する ets ディレクトリで、右クリックして [新規] > [ディレクトリ] を選択し、新しいディレクトリを作成し、myabilitystage という名前を付けます。
2. myabilitystage ディレクトリで右クリックし、[新規] > [TypeScript ファイル] を選択して新しい TypeScript ファイルを作成し、MyAbilityStage.ts という名前を付けます。
3. MyAbilityStage.ts ファイルを開き、AbilityStage の依存関係パッケージをインポートし、AbilityStage を継承するようにクラスをカスタマイズし、必要なライフ サイクル コールバックを追加します。この例では、onCreate() ライフ サイクル コールバックが追加されています。
import AbilityStage from '@ohos.app.ability.AbilityStage';
export default class MyAbilityStage extends AbilityStage {
onCreate() {
// 应用的HAP在首次加载的时,为该Module初始化操作
}
onAcceptWant(want) {
// 仅specified模式下触发
return "MyAbilityStage";
}
}
4. module.json5 構成ファイルで、HAP ロードのエントリ ポイントとして srcEntry パラメータを構成することにより、モジュールに対応するコード パスを指定します。
{
"module": {
"name": "entry",
"type": "entry",
"srcEntry": "./ets/myabilitystage/MyAbilityStage.ts",
...
}
}
SkillStage には、onCreate() ライフサイクル コールバックと、onAcceptWant()、onConfigurationUpdated()、onMemoryLevel() イベント コールバックがあります。
onCreate() ライフサイクル コールバック: 対応するモジュールの最初の UIAbility インスタンスをロードする前に、AbilityStage が作成され、その onCreate() ライフ サイクル コールバックは、AbilityStage の作成後に実行されます。SkillStage モジュールは、モジュールがロードされたときに開発者に通知する機能を提供し、モジュールを初期化できるようにします (リソースのプリロード、スレッドの作成など)。
onAcceptWant() イベント コールバック: UIAbility 指定インスタンス モード (指定) の開始時にイベント コールバックがトリガーされます。具体的な使用法については、UIAbility 起動モードの概要を参照してください。
onConfigurationUpdated() イベント コールバック: グローバル システム構成が変更されたときにトリガーされるイベント システム言語、濃い色と明るい色などはすべて、構成項目の前に Configuration クラスで定義されます。
onMemoryLevel() イベント コールバック: システムがメモリを調整するときにトリガーされるイベント。
アプリがバックグラウンドに切り替わると、システムはアプリをバックグラウンドのキャッシュに保持します。アプリケーションがキャッシュ内にある場合でも、システム全体のパフォーマンスに影響します。システム リソースが不十分な場合、システムはさまざまな方法でアプリケーションからメモリを再利用し、必要に応じてアプリケーションを完全に停止して、重要なタスクのためにメモリを解放します。システム メモリのバランスをさらに維持し、システムがユーザーのアプリケーション プロセスを停止しないようにするために、AbilityStage の onMemoryLevel() ライフサイクル コールバックでシステム メモリの変更をサブスクライブし、不要なリソースを解放できます。
import AbilityStage from '@ohos.app.ability.AbilityStage';
export default class MyAbilityStage extends AbilityStage {
onMemoryLevel(level) {
// 根据系统可用内存的变化情况,释放不必要的内存
}
}