Android应用程序变量
Android应用程序开发中,有的时候我们在应用程序的任何一个地方都需要访问一个全局变量,也就是在任何一个Activity中都可以访问的变量。它不会因为Activity的生命周期结束而消失。要实现应用程序级的变量,我们可以通过Application这个类来实现。 首先,我们新建一个类HelloApplication继承Android.app.Application类,然后在我们的类中增加一些变量。如下所示:
01
|
public class HelloApplication extends Application {
|
02
|
private int globalVariable= 1 ;
|
03
|
04
|
public int getGlobalVariable() {
|
05
|
return globalVariable;
|
06
|
}
|
07
|
08
|
public void setGlobalVariable( int globalVariable) {
|
09
|
this .globalVariable = globalVariable;
|
10
|
}
|
11
|
}
|
然后在应用程序配置文件AndroidManifest.xml中进行相应的配置,如下图所示:完成之后,我们在应用程序的任何一个Activity中可以通过如下方法访问我们的变量:
- ((HelloApplication)getApplication()).setGlobalVariable(10);
- int valiable=((HelloApplication)getApplication()).getGlobalVariable();
怎么样? 是不是很简单? Application对象只有在应用程序中所有Activity都destroy时才会destrory,所有我们可以在任何一个Activity中访问它。 那么为什么我们不能使用static 变量来存放全局变量呢?如下所示:
- public class DataStoreClass {
- private static int globalVariable=1;
- public static int getGlobalVariable() {
- return globalVariable;
- }
- public static void setGlobalVariable(int newGlobalVariable) {
- globalVariable = newGlobalVariable;
- }
- }
通过这种方式,DataStoreClass类可能会像Activity一样在某些时候被android系统强行销毁。所以在应用程序运行期间,DataStoreClass的值可能会丢失,或得到一些您不想要的值。
转载于:https://www.cnblogs.com/xyzlmn/archive/2010/11/27/3168237.html
Android应用程序变量相关推荐
- Android应用程序消息处理机制(Looper、Handler)分析(2)
我们再回到NativeMessageQueue的构造函数中,看看JNI层的Looper对象的创建过程,即看看它的构造函数是如何实现的,这个Looper类实现在frameworks/base/libs/ ...
- Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析(上)...
在前面一篇文章中,我们分析了Android应用程序窗口的绘图表面的创建过程.Android应用程序窗口的绘图表面在创建完成之后,我们就可以从上到下地绘制它里面的各个视图了,即各个UI元素了.不过在绘制 ...
- Android应用程序组件Content Provider的启动过程源代码分析(6)
Step 17. ActivityThread.installProvider 这个函数定义在frameworks/base/core/java/android/app/Act ...
- 利用FRIDA攻击Android应用程序(三)
利用FRIDA攻击Android应用程序(三) 前言 在我的有关frida的第二篇博客发布不久之后,@muellerberndt决定发布另一个OWASP Android crackme,我很想知道是否 ...
- Android应用程序组件Content Provider的共享数据更新通知机制分析(3)
3. 数据更新通知的发送过程 在前面这篇文章Android应用程序组件Content Provider应用实例介绍的应用程序Acticle中,当调用ArticlesAda ...
- 检查Android应用程序是否在后台运行
本文翻译自:Checking if an Android application is running in the background 在后台,我的意思是用户当前看不到应用程序的任何活动? #1楼 ...
- Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析...
在前面一篇文章中,我们分析了Android应用程序与SurfaceFlinger服务的连接过程.Android应用程序成功连接上SurfaceFlinger服务之后,还需要一块匿名共享内存来和Surf ...
- android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications
Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...
- Android应用程序注冊广播接收器(registerReceiver)的过程分析
前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/公布机制,因此,使用这样的消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息事实上就是注冊广播接收器, ...
最新文章
- 2020卫星参数表大全_王者荣耀比较秀的名字 2020年比较骚气比较浪的王者荣耀名字大全...
- 串联NSOperation知识点
- 安全现状:从通杀到专杀
- php curl 防止采集,php多线程采集网页的解决办法 curl多线程采集
- 从代码到 Docker、Kubernetes、Istio、Knative……,或许是时候重新思考从代码到云的编程了...
- Java多张图片合成PDF
- C++动态类型与静态类型
- 圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算
- 转行IT行业,月薪过万需要多久?
- zotero word 调整样式 上标
- 如何打开mysql数据库?
- windows截图快捷方式
- Mysql基础命令语句(1)
- Java菱形的面积_用java打印菱形。
- sshd报错Privilege separation user sshd does not exist的解决办法
- DeepMD安装及Unbuntu下Nvidia显卡升级(防跳坑)
- c语言求正方体的表面积和体积,2.事先编写一个程序,计算正方体、球体和圆柱体的表面积和体积。(提示:声明一个抽象基类 container,派...
- 【Cisco Packet Tracer--error】192.168.0.1overlaps with Internet
- uniapp uni-swipe-action 滑动删除
- EXCEL学习笔记----EXCEL操作
热门文章
- 剑指Offer - 面试题32 - III. 从上到下打印二叉树 III(BFS,queue+stack)
- LeetCode 1261. 在受污染的二叉树中查找元素(树哈希)
- LeetCode 493. 翻转对(归并排序)
- python哪本书好看_python入门看哪本书好
- 【Python基础知识-pycharm版】第四节-元组
- 数据库实例:mysql与mongo结合用户登录
- java自动的废料收集_Java 垃圾收集机制
- 真正的高阶特征交叉:xDeepFM与DCN-V2
- 谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!
- Nacos部署中的一些常见问题汇总