Android中的全局变量

来源:互联网 发布:淘宝网机顶盒比价 编辑:程序博客网 时间:2024/06/05 18:14
经历前两讲之后,我们对android的开发已经有了一个大概的认识。按照打通道路后再拓宽的探索学习方式,今天我们来看看android开发中的全局变量怎么处理。
为什么要说这个问题呢?在我研究任何一个新技术的开发的过程中,我感觉在完成页面的呈现、获取数据之后,最重要的就是全局变量的处理了,因为应用软件要实现合理的功能布局,必然走向多页面,而页面的交互中必然需要用到全局变量。在这里插入一下,有人可能对我这句话有异议,可能会说“我用一个页面也能实现一个应用”,但是我的经验是页面代码的复杂度跟业务功能是成乘方关系的,也就是说,从设计角度看,当你给页面增加一个新功能时,页面代码的复杂程度会以指数关系递增。毕竟我们做应用软件,不是基础研究,这种钻牛角尖的做法会面临很大的成本风险。

回到正题。
首先,我要告诉你在做SFE之前,我也不知道android的全局变量是怎么一回事。但是我可以告诉你怎么去找它的入口。对,没错,入口。
我们知道,在c#的程序里面通过Application对象就可以获取到全局变量,那么获取过程就是我所谓的“入口”。因为只有找到这个入口,才能拿到application对象。我们看看java程序,在servlet中可以通过Application=request.getSession().getServletContext();来获取到application。
看明白了没?我们要用的全局变量,大多数情况下都是存在于Application这个对象里面的,也就是说全局变量是隶属于应用的。

android一样有获取的方法:
Application=(MyApp)context.getApplicationContext();
与众不同,全局变量的对象结构是可以在android配置文件AndroidManifest.xml里面预定义的:
<application
        android:name="deco.sfe.global.MyPara"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

这段配置里面的android:name="deco.sfe.global.MyPara"就是Android应用在启动时加载什么样的全局变量对象。这个对象可以自己定义。这是我定义的:deco.sfe.global.MyPara.java:
package deco.sfe.global;

import java.util.HashMap;

import android.app.Application;

public class MyPara extends Application{
   
    /**全局变量*/
    private String userid;
    private String user;
    private String pwd;
    private String orgid;
    private String token;
    private String ver;
    private String release_date;
    private String conpany;
    private String dfam_path;
    private String service_time;
    private String MIME;
    private String uploadUrl;//拍照图片上传地址
    private boolean isRememberPwd=false;
    private HashMap<String,String> services=new HashMap<String, String>();
   
    public void addService(String serviceName,String serviceImplName){
        services.put(serviceName, serviceImplName);
    }
   
    public String getService(String serviceName){
        return services.get(serviceName);
    }
   
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public String getOrgid() {
        return orgid;
    }
    public void setOrgid(String orgid) {
        this.orgid = orgid;
    }
    public String getVer() {
        return ver;
    }
    public void setVer(String ver) {
        this.ver = ver;
    }
    public String getRelease_date() {
        return release_date;
    }
    public void setRelease_date(String release_date) {
        this.release_date = release_date;
    }
    public String getConpany() {
        return conpany;
    }
    public void setConpany(String conpany) {
        this.conpany = conpany;
    }
    public String getDfam_path() {
        return dfam_path;
    }
    public void setDfam_path(String dfam_path) {
        this.dfam_path = dfam_path;
    }
    public String getService_time() {
        return service_time;
    }
    public void setService_time(String service_time) {
        this.service_time = service_time;
    }

    public String getMIME() {
        return MIME;
    }

    public void setMIME(String mIME) {
        MIME = mIME;
    }

    public boolean isRememberPwd() {
        return isRememberPwd;
    }

    public void setRememberPwd(boolean isRememberPwd) {
        this.isRememberPwd = isRememberPwd;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getUploadUrl() {
        return uploadUrl;
    }

    public void setUploadUrl(String uploadUrl) {
        this.uploadUrl = uploadUrl;
    }
   
    @Override  
    public void onCreate() {  
        super.onCreate();  
        ExceptionHandler exceptionHandler = ExceptionHandler.getInstance();  
        exceptionHandler.init(getApplicationContext());  
    }
}

其中的onCreate方法,是一个全局的异常处理办法的入口。其他文档中会集中介绍。
有了配置和定义之后,我们可以在任何需要的地方将MyPara调用出来。只需要写:MyPara myPara=(MyPara)context.getApplicationContext();就可以将Application拿出来以调用里面的全局变量。
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 科学幻想画创意说明 什么是科学幻想画 科学幻想画3一6年级 科技幻想画中学生 幻想画怎么画 儿童科技幻想画图片 科学幻想画简单又漂亮 科学幻想画简笔画 科学幻想画 环保 科技幻想画怎么画 关于幻想的画 关于科学幻想的画 幻想画大全 幻想症前兆十个表现 小孩幻想症 关系幻想症 如何戒掉幻想症 有幻想症 神经幻想症 精神幻想症 神经性幻想症 妄想症是什么意思 妄想症什么意思 我有幻想症 男人幻想症 强迫幻想症怎么办 老人幻想症 精神分裂幻想症 被爱幻想症 幻想妄想症 臆想症和妄想症的区别 老出现幻觉怎么回事 老是出现幻觉是怎么回事 幻听幻觉是什么原因导致的 为什么会出现幻听幻觉 人为什么会出现幻听幻觉 性幻想 17幻想 男人幻想 17种性幻想 十七种幻想