Android开发中使用Static静态变量带来的问题
来源:互联网 发布:算法之道 pdf 编辑:程序博客网 时间:2024/05/16 09:26
static修饰的静态变量,在不同的类和包中都可以使用,在虚拟机中单独占用内存,但是可能会出现NullException的异常。
static访问是无法跨进程的。Android中的Activity,Service是可以在各自进程中运行的,用static传递参数到不同进程的Activity、Service时会错。
static占据的那份内存,在接个电话或者长时间待机后,再回到应用也会出现崩溃的现象,而这些崩溃都与静态变量的空指针有关系。
根据Google官方的推荐,我们应该尽量使用继承自Application的自定义类,在我们继承的类中定义需要全局使用的变量,并通过getApplicationContext()来获取和保存相关的变量即可。
启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。
具体使用Application的用法我这里就不详细介绍了。
如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型;而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是使用Application context。
在Android中,我一般使用Static都是在以下场景:
1.static final常量
2.单例模式
- Android开发中使用Static静态变量带来的问题
- Android中静态变量(static)的使用
- Android中静态变量(static)的使用
- PHP中static静态变量的使用
- php中static静态变量的使用
- 关于Android中静态变量static被回收问题
- 关于Android中静态变量static被回收问题
- Android开发调试-static静态变量与如何定义全局变量的问题
- Android开发调试-static静态变量与如何定义全局变量的问题
- Android 如何定义全局变量 以及 static静态变量使用误区 的问题
- Android static静态成员变量的使用误区
- Android static静态成员变量的使用误区
- Android static静态成员变量的使用误区
- Android static静态成员变量的使用误区
- Android static静态成员变量的使用误区
- Android static静态成员变量的使用误区
- 【php】php函数中static静态变量的使用
- php中静态变量(static)与自定义常量的使用
- linux指定动态库路径
- FTP协议详解
- ListView中数据模板内的自定义按钮
- Android属性之android:priority
- android布局--Android fill_parent、wrap_content和match_parent的区别
- Android开发中使用Static静态变量带来的问题
- 实现C语言中strcpy函数
- UIRefreshControl 相关用法
- 子元素设置margin-top,父元素也受影响
- EditText属性设置以及输入长度限制
- GCD(Grand Central Dispatch)和Block 使用-浅析
- iOS ARC工程中加入了非ARC文件的编译选项设置
- Android实现网易新闻客户端侧滑菜单(二)
- Maven 修改默认JDK版本和指定项目JDK版本