当前位置: 首页 > news >正文

qml radiobutton 状态改变事件_React-Native - 使用AppState获取App运行状态(以及监听状态改变事件)...

有时我们需要知道应用当前的运行状态,这样我们可以根据不同的状态进行相应的操作。React Native 提供了 AppState 来告知我们 App 当前的状态:激活(前台运行中)、还是后台运行。甚至可以通知我们状态的改变。下面分别对这两种情况进行介绍。

1,主动获取当前应用状态

我们可以使用 AppState.currentState 来获取应用的状态,返回值如下:

active:前台运行中

background:后台运行中

inactive:运行的过渡状态

(1)效果图

点击按钮后,将当前状态显示出来。

2b02a247a7e8dd132f11e68982ead96c.png
  • (2)样例代码

import React, { Component } from 'react';

import {

AppRegistry,

StyleSheet,

Text,

View,

AppState

} from 'react-native';

//默认应用的容器组件

class App extends Component {

render() {

return (

<View style={styles.container}>

<Text style={styles.item} onPress={this.getCurrentState.bind(this)}>

获取当前状态

</Text>

</View>

);

}

//获取当前状态

getCurrentState() {

alert("当前状态:" + AppState.currentState)

}

}

//样式定义

const styles = StyleSheet.create({

container:{

flex: 1,

marginTop:25

},

item:{

marginTop:10,

marginLeft:5,

marginRight:5,

height:30,

borderWidth:1,

padding:6,

borderColor:'#ddd',

textAlign:'center'

},

});

AppRegistry.registerComponent('HelloWorld', () => App);

2,监听状态的变化

我们可以在代码中添加相关的事件监听:

AppState.addEventListener:用于添加事件监听

AppState.removeEventListener:用于删除事件监听

(1)效果图

程序启动后会自动监听状态改变事件、以及内存报警事件。按 home 键将 App 退到后台,接着再回到前台运行可以看到效果。

3e8157486adddf8fd5d57c4ef54a14a5.png

fecb86772ea89ec68f91c6cedd3b52af.png

(2)样例代码

import React, { Component } from 'react';

import {

AppRegistry,

StyleSheet,

Text,

View,

AppState

} from 'react-native';

//默认应用的容器组件

class App extends Component {

componentWillMount() {

//监听状态改变事件

AppState.addEventListener('change', this.handleAppStateChange);

//监听内存报警事件

AppState.addEventListener('memoryWarning', function(){

console.log("内存报警....");

});

}

componentWillUnmount() {

//删除状态改变事件监听

AppState.removeEventListener('change', this.handleAppStateChange);

}

render() {

return (

<View style={styles.container}>

<Text style={styles.item}>监听中...</Text>

</View>

);

}

//状态改变响应

handleAppStateChange(appState) {

alert('当前状态为:'+appState);

}

}

//样式定义

const styles = StyleSheet.create({

container:{

flex: 1,

marginTop:25

},

item:{

marginTop:10,

marginLeft:5,

marginRight:5,

height:30,

borderWidth:1,

padding:6,

borderColor:'#ddd',

textAlign:'center'

},

});

AppRegistry.registerComponent('HelloWorld', () => App);

相关文章:

  • anbox 使用情况_Anbox:容器中的 Android
  • jvm系列(二):JVM内存结构
  • nio和bio的原理_深入剖析BIO和NIO底层原理
  • 【codeforces 789B】Masha and geometric depression
  • redis 缓存预热_Redis中缓存预热、击穿、雪崩等问题解决方案
  • Ubuntu环境下IPython的搭建和使用
  • 或是独体字吗_什么是独体字?
  • 【7005】二叉树的遍历问题2
  • eslint 无法格式化ts_vscode-eslint的踩坑实践--typescript没法格式化
  • 【2030】排队打水问题
  • vue入门到启动_Vue入门:Vue项目创建及启动
  • 【2012】建立二维矩阵
  • idle显示出错信息 python_python小课堂05 - 基本数据类型字符串篇(重要)
  • POJ3468(线段树 区间修改 lazy-tag)
  • html radio 默认图片替换_怎么修改单选框radio默认样式
  • 【mysql】环境安装、服务启动、密码设置
  • ES2017异步函数现已正式可用
  • HTTP--网络协议分层,http历史(二)
  • Javascript设计模式学习之Observer(观察者)模式
  • Mysql数据库的条件查询语句
  • PAT A1050
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SQLServer之创建数据库快照
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • webpack+react项目初体验——记录我的webpack环境配置
  • 后端_MYSQL
  • 使用agvtool更改app version/build
  •  一套莫尔斯电报听写、翻译系统
  • 第二十章:异步和文件I/O.(二十三)
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 如何正确理解,内页权重高于首页?
  • ​Spring Boot 分片上传文件
  • ​TypeScript都不会用,也敢说会前端?
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • $refs 、$nextTic、动态组件、name的使用
  • (23)Linux的软硬连接
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (LeetCode 49)Anagrams
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET 的程序集加载上下文
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net(C#)中String.Format如何使用
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • ??在JSP中,java和JavaScript如何交互?
  • @GlobalLock注解作用与原理解析
  • @RequestParam详解