无敌暴龙
无敌暴龙
  • 发布:2022-12-12 16:40
  • 更新:2022-12-12 17:22
  • 阅读:380

uts里 import Context from "android.content.Context"和const context = getAppContext();有什么区别

分类:uts
// index.uts  

// 引用android api  
import Context from "android.content.Context";  
import BatteryManager from "android.os.BatteryManager";  
// 引用uts环境库  
import { getAppContext } from "io.dcloud.uts.android";  

export function getBatteryCapacity(): string {  
    // 获取android系统 application上下文  
    const context = getAppContext();  
    if (context != null) {  
        const manager = context.getSystemService(  
            Context.BATTERY_SERVICE  
        ) as BatteryManager;  
        const currentLevel: number = manager.getIntProperty(  
            BatteryManager.BATTERY_PROPERTY_CAPACITY  
        );  
        return '' + currentLevel + '%';  
    }  
    return "0%";  
}  

uts教程里的代码,import Context from "android.content.Contextconst context = getAppContext(),这俩context有啥区别

2022-12-12 16:40 负责人:无 分享
已邀请:
无敌暴龙

无敌暴龙 (作者)

什么情况下用import Context from "android.content.Context什么情况下用getAppContext()

DCloud_Android_THB

DCloud_Android_THB

一个是当前context对象 是一个引入Context类型

  • 无敌暴龙 (作者)

    什么情况下用getAppContext(),什么情况下用getUniActivity()

    2022-12-12 18:26

DCloud_Android_DQQ

DCloud_Android_DQQ

import Context from "android.content.Context

是因为下面用到了一个常量
Context.BATTERY_SERVICE

const context = getAppContext()

引用getAppContext 是因为需要application上下文实例。

在android场景中,

getAppContext 比较常用,等同于android原生开发中的 getApplication() 在获取app 相关的能力时,都需要引用。
Contex 比较少见,只要在调用context 相关系统能力,明确要求传入Context 字面量的时候才需要。

具体什么时候需要调用哪个类,实际上是取决于android api 要求的。
在开发相关功能时,查阅对应的android 文档,进而决定你应该使用哪个api

该问题目前已经被锁定, 无法添加新回复