外观
system.internal.activity
约 479 字大约 2 分钟
2026-07-15
控制原生 Activity/Service 的内部桥。同源 JIDL 定义如下。
| 方法 | 返回值 | 参数 |
|---|---|---|
startActivity(target, params) | Integer 状态码 | target: string, params: object |
stopActivity(target) | Integer 状态码 | target: string |
startService(target, params) | Integer 状态码 | target: string, params: object |
stopService(target) | Integer 状态码 | target: string |
bindService(target, params, connection) | Integer bindId;错误为 -1 | 见下方 |
unbindService(bindId) | Void | bindId: integer |
moveToBackground(nonRoot) | Boolean | nonRoot: boolean |
所有方法都是同步调用,返回值是提交到原生 Activity/Service 管理器的状态,不表示目标业务已经执行完成。target 的命名规则和 params 的字段由目标原生组件定义,不属于此 ABI。
connection:
{
connectCallBack: () => {},
disconnectCallBack: () => {}
}调用骨架
以下 target 仅是占位符。必须从系统组件协议、预装应用或厂商文档获得真实目标名。
import activity from '@system.internal.activity'
const status = activity.startActivity('vendor.component.Target', {
source: 'quickapp'
})
console.log('startActivity status:', status)启动/停止 Service:
const startStatus = activity.startService('vendor.service.Target', {
mode: 'demo'
})
const stopStatus = activity.stopService('vendor.service.Target')绑定 Service:
let bindId = -1
bindId = activity.bindService(
'vendor.service.Target',
{ mode: 'demo' },
{
connectCallBack() {
console.log('service connected')
},
disconnectCallBack() {
console.log('service disconnected')
}
}
)
if (bindId > 0) {
activity.unbindService(bindId)
bindId = -1
}JIDL 只明确保证 bindService() 成功时 bindId > 0、错误时 -1。其他方法的具体状态码枚举没有公开,不能假设 0 或任意非零值的意义。
moveToBackground(nonRoot) 返回是否成功。nonRoot 的准确调度语义未由 JIDL 解释;普通应用不应依赖它改变系统任务栈。
部分 JIDL 版本还把连接与断开回调记作两个独立 callback 定义,因此拼写和回调触发时机应以真机为准。
警告
该接口能启动系统原生组件。错误 target/params 可能导致系统服务异常、安全校验失败或设备不稳定。只应在可恢复的测试设备上验证,不要枚举或暴力尝试系统组件。
机型可用性
| Xiaomi Smart Band 10 Pro | Xiaomi Watch S4 41mm |
|---|---|
| △ | △ |