在后台和前台之间转换应用状态
在后台和前台状态之间转换应用有多种用例。测试此切换有助于您了解应用的热启动场景,以及应用在后台时必须采取的操作。此页面向您展示如何模拟应用前后台切换。
常见用例
以下是测试前后台切换的一些常见用例:
- 在应用运行时按下“主页”按钮(清除后台堆栈)
- 深层链接到另一个应用(不会擦除后台堆栈)
- 按下专门的应用启动按钮
- 按下Alexa麦克风(覆盖在应用上方)
后台行为决定用户是否可以通过按下返回键重新返回目前处于后台状态的应用。
生命周期管理器和应用框架
Vega设备中的Vega生命周期管理器 (LCM) 组件负责处理应用的前后台切换。LCM根据来自Fire TV主页启动器的调用来工作。您可以在应用管理和通信工具中了解有关LCM的更多信息。
模拟前后台切换
让我们探索可用于模拟应用前后台切换的不同机制。
主页启动器将应用发送到后台
此机制在Vega设备上启动Fire TV主页启动器应用,该应用会将正在运行的应用推入后台。该行为是现实场景中最常见的用例,按下主页键即可执行相同的命令以实现所需的行为。
将应用发送到后台
vda shell vlcm launch-app os://home
此命令启动主页启动器应用。按下遥控器上的主页键按钮后将执行与上述命令模拟相同的操作。
列出应用以检查哪个处于可见状态
您可以运行下面的命令来列出所有正在运行的应用,以检查您的应用现在是否正在后台运行。
vda shell vlcm list
在某个应用处于前台时启动另一个应用
如果在当前应用处于前台时启动另一个应用,也会将当前应用推入后台。只有在安装了多个应用(不包括任何系统服务)时,才能模拟此种行为。
vda shell vlcm launch-app orpheus://<另一个应用的应用ID>
调用Alexa将应用发送到后台
您可以调用Alexa搜索目录标题,将您的应用发送到后台。要将您的应用发送到后台,请执行以下操作:
- 按住遥控器上的“语音”按钮
- 让Alexa搜索任何内容
之所以有效,是因为Vega设备使用通用搜索,在显示搜索结果时,它会自动将当前应用移至后台。
再次将应用置于前台
将应用切回前台与再次启动应用类似,只不过这次是热启动(例如,应用在后台运行时)。运行以下命令将应用置于前台。
vda shell vlcm launch-app orpheus://<应用ID>
处理应用状态的机制
Vega应用可以通过React Native API访问AppState。您可以使用AppState来检查应用的当前状态:“活动”或“后台”。该应用还可以注册“change”事件侦听器,以获取AppState的通知。
import React, { useRef, useState, useEffect } from 'react';
import { AppState, StyleSheet, Text, View } from 'react-native';
const AppStateExample = () => {
const appState = useRef(AppState.currentState);
const [appStateVisible, setAppStateVisible] = useState(appState.current);
useEffect(() => {
const subscription = AppState.addEventListener('change', nextAppState => {
console.log('Current AppState is:', appState.current);
console.log('Next AppState is:', nextAppState);
if (
appState.current.match(/inactive|background/) &&
nextAppState === 'active'
) {
console.log('应用已进入前台!');
}
appState.current = nextAppState;
setAppStateVisible(appState.current);
console.log('AppState:', appState.current);
});
return () => {
subscription.remove();
};
}, []);
return (
<View style={styles.container}>
<Text>Current state is: {appStateVisible}</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
});
export default AppStateExample;
您可以在适用于Vega的React Native文档中了解与AppState相关的更多信息。
在应用推入后台时执行清理操作
当您的应用移至后台时,请按照以下清理步骤操作:
- 停止内容播放 - 释放媒体解码器和播放资源
- 更新生命周期状态 - 调整背景/前景状态的任何状态跟踪
- 优化内存 - 释放未使用的内存资源
- 启用热启动 - 允许应用从后台状态快速恢复
这些步骤改善了用户体验并优化了资源使用。
Last updated: 2025年10月22日

