自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Context上下文--到底是什么?

系統(tǒng) OpenHarmony
這篇文章就來簡單聊聊"Context上下文"到底是什么?

什么是Context上下文

在我剛開始看到Context上下文的時(shí)候覺得比較抽象,只知道它是用來拉起權(quán)限或者獲取應(yīng)用的一些信息,但是卻一直不知道它到底是什么,設(shè)計(jì)者是怎么定義的?這篇文章就來簡單聊聊"Context上下文"到底是什么?
我們先從表層上看,Context翻譯過來字面意思就是上下文,從初高中學(xué)語文的知識來看,意思就是文章的語境,背景和環(huán)境等等跟文章相聯(lián)系的內(nèi)容。

但是我們將其代入到程序中,其實(shí)也可以從語文的角度也可以解釋得通,就是抽象化了一下,Context這個(gè)字段在程序中通俗的講就是指執(zhí)行一個(gè)任務(wù)所需要的相關(guān)信息,這個(gè)任務(wù)可以是一個(gè)進(jìn)程,一個(gè)線程。而在OpenHarmony和HarmonyOS北向開發(fā)中分別為ability與application提供了Context上下文的能力,包括訪問ability或application的任務(wù)資源、請求和驗(yàn)證權(quán)限等。

在HarmonyOS&OpenHarmony中的Context應(yīng)用上下文概述

Context是應(yīng)用中對象的上下文,提供獲取應(yīng)用程序環(huán)境信息的能力。

OpenHarmony的應(yīng)用框架分為FA模型和Stage兩種模型。對應(yīng)存在兩套Context機(jī)制適配兩種應(yīng)用框架模型,其中application/BaseContext屬于通用的Context基類,里面包含一個(gè)屬性stageMode,用來區(qū)分開發(fā)模型是FA還是Stage。

Context會在后續(xù)開發(fā)獲取系統(tǒng)信息能力的過程中經(jīng)常遇到,所以必須對Context上下文含義以及如何使用有一定的了解。

下面來簡單用代碼實(shí)現(xiàn)幾個(gè)例子,工程創(chuàng)建參考上一章節(jié)即可。

代碼實(shí)操

接下來先用Context上下文獲取有關(guān)當(dāng)前應(yīng)用程序的信息

import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle'
onInit(){
let context = featureAbility.getContext();//創(chuàng)建Context實(shí)例對象
context.getApplicationInfo().then((data) => {
console.info("CHW=====================>getApplicationInfoCallback===================>");
console.info("CHW====>data====>" + JSON.stringify(data))
});
}

將代碼編譯成HAP包然后安裝到開發(fā)板或者手機(jī)上,就可以將調(diào)試臺切換到log窗口,查看輸出的調(diào)試信息,可以看到第三行輸出的就是我們要有關(guān)當(dāng)前應(yīng)用程序的信息。

#打卡不停更#【FFH】"Context上下文"到底是什么?-開源基礎(chǔ)軟件社區(qū)

獲取當(dāng)前ability的包名:

import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle'
onInit(){
let context = featureAbility.getContext();//創(chuàng)建Context實(shí)例對象
context.getBundleName().then((data) => {
console.info("CHW=======================>getBundleNameCallback====================>");
console.info("CHW====>data====>" + JSON.stringify(data));
});
}

#打卡不停更#【FFH】"Context上下文"到底是什么?-開源基礎(chǔ)軟件社區(qū)

粗體獲取此ability的當(dāng)前顯示方向:

import featureAbility from '@ohos.ability.featureAbility'
onInit(){
let context = featureAbility.getContext();//創(chuàng)建Context實(shí)例對象
context.getDisplayOrientation().then((data) => {
console.info("CHW=======================>getDisplayOrientatinotallow====================>");
console.info("CHW====>data====>" + JSON.stringify(data));
});
}

#打卡不停更#【FFH】"Context上下文"到底是什么?-開源基礎(chǔ)軟件社區(qū)

改變此ability的當(dāng)前顯示方向?yàn)闄M屏顯示:

#打卡不停更#【FFH】"Context上下文"到底是什么?-開源基礎(chǔ)軟件社區(qū)

import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle' //導(dǎo)入Bundle模塊以獲取屏幕顯示方向DisplayOrientation對象
onInit(){
let context = featureAbility.getContext();//創(chuàng)建Context實(shí)例對象
let orientatinotallow=bundle.DisplayOrientation.LANDSCAPE;//設(shè)置方向參數(shù)為橫屏
context.setDisplayOrientation(orientation).then((data) => {
console.info("CHW=======================>setDisplayOrientatinotallow====================>");
console.info("CHW====>data====>" + JSON.stringify(data));
});
}

#打卡不停更#【FFH】"Context上下文"到底是什么?-開源基礎(chǔ)軟件社區(qū)

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 51CTO開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2025-03-18 08:14:05

2021-01-26 05:19:56

語言Go Context

2017-05-11 14:00:02

Flask請求上下文應(yīng)用上下文

2012-12-31 10:01:34

SELinuxSELinux安全

2020-10-14 06:22:14

UWB技術(shù)感知

2010-11-01 01:25:36

Windows NT

2020-09-22 08:22:28

快充

2020-09-27 06:53:57

MavenCDNwrapper

2011-04-27 09:30:48

企業(yè)架構(gòu)

2025-02-08 09:13:40

2022-11-03 08:29:32

編程管理器協(xié)議

2022-09-14 13:13:51

JavaScript上下文

2021-01-21 21:24:34

DevOps開發(fā)工具

2023-07-12 15:32:49

人工智能AI

2020-03-05 10:28:19

MySQLMRR磁盤讀

2021-07-07 05:07:15

JDKIterator迭代器

2021-09-01 23:29:37

Golang語言gRPC

2022-10-08 00:00:00

Spring數(shù)據(jù)庫項(xiàng)目

2021-02-05 10:03:31

區(qū)塊鏈技術(shù)智能

2024-02-04 00:01:00

云原生技術(shù)容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號