Android开发系列之全局变量

摘要:
在项目开发过程中,可能会使用大量全局变量。在Android开发中,大多数人更喜欢使用应用程序来保存全局变量。让我们先了解一下Android中的应用程序是什么?Application类用于维护应用程序的全局状态。我们可以提供自己的实现,并在AndroidManifest的<application>标记中指明其名称。xml文件,这将导致在创建应用程序时实例化我们自己的Application类。Android系统将只为每个程序运行时创建一个Application类对象,因此Application可以说是单例模式下的类。

  项目开发的过程中,可能会大量的使用全局变量,在android开发中,大多数人更偏向于使用application来保存全局变量。那么我们就先来了解下在android中,application究竟是什么?有什么作用?

  Application类是用来维护应用程序全局状态。我们可以提供自己的实现,并在AndroidManifest.xml文件的<application>标签中指出它的名字,这将导致在创建应用程序时去实例化我们自己的Application类。Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例模式的一个类。且Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局唯一的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以,通过Application来进行一些数据传递、数据共享、数据缓存等操作。

  首先创建继承自Application的MyApplication类,定义变量score,并创建get和set方法。

 1 package com.example.whs.myapplication;
 2 
 3 import android.app.Application;
 4 
 5 /**
 6  * Created by whs on 17/5/1.
 7  */
 8 
 9 public class MyApplication extends Application {
10     private int score = 100;
11 
12     public int getScore() {
13         return score;
14     }
15 
16     public void setScore(int score) {
17         this.score = score;
18     }
19 }

  下面就是如何使用我们创建的全局变量了,在MainActivity中,首先要获得MyApplication的对象,因为MyApplication继承自Application,所以使用getApplication()方法即可,然后可以调用MyApplication的get或set方法进行访问全局变量。

        MyApplication application = (MyApplication)this.getApplication();
        application.setScore(200);
        int score = application.getScore();    

  注意,在使用MyApplication之前需要修改AndroidManifest.xml文件的<application>中的android:name = ".MyApplication",这样就不会访问系统提供的application,而访问我们自己创建的。

免责声明:文章转载自《Android开发系列之全局变量》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇GPT转MBR【POI】修改Excel内容下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android开发中java与javascript交互:PhoneGap插件vs addJavascriptInterface

1.前言 在《用PhoneGap+jQueryMobile开发Android应用实例》中,我们讲到PhoneGap(以下称Cordova)开发环境的搭建,以及如何整合出一个基本的Android应用框架(并给出了范例代码)。于是乎,我们便开始日夜兼程,披星戴月的炮制我们的第一个手机应用了。 但实际上,除了常见的API调用规范(有且仅有自查手册一途)引起的问题...

React Native环境搭建

最近组里老大开始招RN的一些开发人员,也从最近的一些动向表明将来的功能有可能会由RN来编写了,而对于我是从事纯Native的android开发工作已经N多年了,对于RN组里面也有一些同事的技术分享,说实话对它是非常之抗拒的,觉着这玩意不会就像几年前出的PhoneGap那样鸡肋的技术吧,也就是用Webview去加载h5页面嘛,不可能代替Native的,直到最...

百度Android语音识别SDK语义理解与解析方法

百度语义理解开放平台面向互联网开发人员提供自然语言文本的解析服务,也就是能够依据文本的意图解析成对应的表示。 为了易于人阅读,同一时候也方便机器解析和生成,意图表示协议採用 json 语言进行描写叙述,採用 gb18030 编码。  json 语言的基本概念:  1、属性名/属性值  即键值对(key-value)  2、数组  在 json 中是...

SwitchButton 开关按钮 的多种实现方式

刚开始接触开关样式的按钮是在IOS系统上面,它的切换以及滑动十分帅气,深入人心。 所谓的开关按钮,就是只有2个状态:on和off,下图就是系统IOS 7上开关按钮效果。 起初我在android上我只会使用CheckBox去满足对应的功能。后来,查看开发文档发现,android也有了自己的原生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Swi...

Android开发之权限列表

权限定义 功能 android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问"properties"表在checkin数据库中,改值可以修改上传 android.permission.ACCESS_COARSE_LOCATION 允许一个程序访问CellID或WiFi热点来获取粗略的位置 andro...

ADB命令详解及大全( 声明:此文是参考大佬博客所做的笔记!)

   adb是什么?       adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端...