在后台和前台之间转换应用状态
在后台和前台状态之间转换应用有多种用例。测试此切换有助于您了解应用的热启动场景,以及应用在后台时需要采取的操作。此页面向您展示如何模拟应用前后台切换。
常见用例
以下是测试前后台切换的一些常见用例:
- 在应用运行时按下“主页”按钮(清除后台堆栈)
- 深层链接到另一个应用(不会擦除后台堆栈)
- 按下专门的应用启动按钮
- 按下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搜索目录标题,将您的应用发送到后台。Vega设备带有通用搜索的实现,这意味着当调用搜索结果时,前台的应用将被推入后台。
这可以通过按住遥控器上的“语音”键并搜索任何内容来完成。
再次将应用置于前台
将应用切回前台与再次启动应用类似,只不过这次是热启动(例如,应用在后台运行时)。运行以下命令将应用置于前台。
vda shell vlcm launch-app orpheus://<应用ID>
处理应用状态的机制
Vega应用可以通过React Native API访问AppState。这可以用来检查应用的当前状态:“active”或“background”。该应用还可以注册“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月21日

