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应用程序变量相关推荐

  1. Android应用程序消息处理机制(Looper、Handler)分析(2)

    我们再回到NativeMessageQueue的构造函数中,看看JNI层的Looper对象的创建过程,即看看它的构造函数是如何实现的,这个Looper类实现在frameworks/base/libs/ ...

  2. Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析(上)...

    在前面一篇文章中,我们分析了Android应用程序窗口的绘图表面的创建过程.Android应用程序窗口的绘图表面在创建完成之后,我们就可以从上到下地绘制它里面的各个视图了,即各个UI元素了.不过在绘制 ...

  3. Android应用程序组件Content Provider的启动过程源代码分析(6)

        Step 17. ActivityThread.installProvider         这个函数定义在frameworks/base/core/java/android/app/Act ...

  4. 利用FRIDA攻击Android应用程序(三)

    利用FRIDA攻击Android应用程序(三) 前言 在我的有关frida的第二篇博客发布不久之后,@muellerberndt决定发布另一个OWASP Android crackme,我很想知道是否 ...

  5. Android应用程序组件Content Provider的共享数据更新通知机制分析(3)

            3. 数据更新通知的发送过程        在前面这篇文章Android应用程序组件Content Provider应用实例介绍的应用程序Acticle中,当调用ArticlesAda ...

  6. 检查Android应用程序是否在后台运行

    本文翻译自:Checking if an Android application is running in the background 在后台,我的意思是用户当前看不到应用程序的任何活动? #1楼 ...

  7. Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析...

    在前面一篇文章中,我们分析了Android应用程序与SurfaceFlinger服务的连接过程.Android应用程序成功连接上SurfaceFlinger服务之后,还需要一块匿名共享内存来和Surf ...

  8. android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications

    Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...

  9. Android应用程序注冊广播接收器(registerReceiver)的过程分析

    前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/公布机制,因此,使用这样的消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息事实上就是注冊广播接收器, ...

最新文章

  1. 2020卫星参数表大全_王者荣耀比较秀的名字 2020年比较骚气比较浪的王者荣耀名字大全...
  2. 串联NSOperation知识点
  3. 安全现状:从通杀到专杀
  4. php curl 防止采集,php多线程采集网页的解决办法 curl多线程采集
  5. 从代码到 Docker、Kubernetes、Istio、Knative……,或许是时候重新思考从代码到云的编程了...
  6. Java多张图片合成PDF
  7. C++动态类型与静态类型
  8. 圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算
  9. 转行IT行业,月薪过万需要多久?
  10. zotero word 调整样式 上标
  11. 如何打开mysql数据库?
  12. windows截图快捷方式
  13. Mysql基础命令语句(1)
  14. Java菱形的面积_用java打印菱形。
  15. sshd报错Privilege separation user sshd does not exist的解决办法
  16. DeepMD安装及Unbuntu下Nvidia显卡升级(防跳坑)
  17. c语言求正方体的表面积和体积,2.事先编写一个程序,计算正方体、球体和圆柱体的表面积和体积。(提示:声明一个抽象基类 container,派...
  18. 【Cisco Packet Tracer--error】192.168.0.1overlaps with Internet
  19. uniapp uni-swipe-action 滑动删除
  20. EXCEL学习笔记----EXCEL操作

热门文章

  1. 剑指Offer - 面试题32 - III. 从上到下打印二叉树 III(BFS,queue+stack)
  2. LeetCode 1261. 在受污染的二叉树中查找元素(树哈希)
  3. LeetCode 493. 翻转对(归并排序)
  4. python哪本书好看_python入门看哪本书好
  5. 【Python基础知识-pycharm版】第四节-元组
  6. 数据库实例:mysql与mongo结合用户登录
  7. java自动的废料收集_Java 垃圾收集机制
  8. 真正的高阶特征交叉:xDeepFM与DCN-V2
  9. 谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!
  10. Nacos部署中的一些常见问题汇总