Android 使用全局变量

Android 使用全局变量

    现在每天都在忙,而且一忙起来,就把写笔记的事情放在了后面,最近在写程序的时候,突然要使用全局变量,就按照以前的方式,写了一个类,然后把变量都声明为静态变量,然后做为全局变量使用,但是在进行Activity切换的时候,突然发现,在前面一个Acitivty中赋值后,但是在后面却无法获取到,刚开始以为是有其它地方有问题,但是后来检查发现也没有问题,这个问题困扰了一个来小时,后来又换一种写法,就是使用Application,但是在使用的时候,也发现有这种问题,当时真是感觉不知道如何处理了,在网上查资料也没有看到怎么解决!

    在最后我又把初始化换了一个地方进行测试,这次赋值居然不消失了,不过这时还不明白这个是为什么,再多次测试,突然想到了一个问题,因为我在这两个Activity中使用了不一样的结束方式,一个为System.exit(0);一种为finishi();感觉可能是这两个方式造成的,后来经过测试,确实是这两个方式造成的,如果是使用System.exit(0);的方式的话,等于把这个Acitvity结束了,因此他所操作过的数据都不会再存在了,系统也许认为没有存在的必要了吧,使用finishi();的话,虽然也是退出,但是这个并不是释放资源,只是把当前的Activity推向后台,不再显示,但是他不释放资源,具体资源什么时候释放,由系统决定,当然System.exit(0);这种形式,也并不是真正的退出系统,因为我们还可能有别的Activity在运行,但是他确实把资源释放了!这个是为什么,不太明白!

  到这里问题上基本解决了,但是这就存在一个问题,因此比如说我登录界面,在登录完成后,其实已经没有什么用了,我就想用Exit出来,怎么把他登录后的用户名,密码保存下来呢?这个时候,想到了Intent这个,传值,使用Intent把值传过去,那么再接收,传到显示的主页面,而且主页面,只有在系统退出的时候才会调用Exit,因此,这个里再初始化公共变量,就可以了。

   经过半天的努力有测试,上面提到的两种公共变量的使用方式,终于都可以了!写这一篇就是想说一下,其实有时候这些问题处理起来很简单,但是有时候一些不太了解的机制问题,可能会造成误解,因此在写程序的时候,需要我们想到方方面面的问题,就像今天这个传值一样,只有这样子才能学到东西!

    下面是一个简单的测试代码:

  1、使用静态类:


      
      

  
#1楼 2011-01-16 15:54 | 斯克迪亚  
看不出第二种的优势啊……
http://pic.cnitblog.com/face/u36576.jpg
  
#2楼 [ 楼主] 2011-01-16 17:54 | fly_binbin  
@斯克迪亚
第二种是Androd推荐使用的,符合Android的开发!我看资料上都是这么说的,我测试了一下,感觉上也是一样的!

  
#3楼 2011-01-16 18:05 | 一舟  
以前做一个项目,也碰到类似的问题。。。
呵呵。后来做了一个判断,如果为null,再重新初始化。。。

http://pic.cnitblog.com/face/u36830.jpg
  
#4楼 2011-01-17 02:57 | 斯克迪亚  
引用fly_binbin:
@斯克迪亚
第二种是Androd推荐使用的,符合Android的开发!我看资料上都是这么说的,我测试了一下,感觉上也是一样的!

嗯,倒是Application子类不用干什么都需要传入Context,这会很方便。
http://pic.cnitblog.com/face/u36576.jpg
  
#5楼 2011-09-06 13:28 | 马加油  
恩,虽然是很简单的东西,但是也曾经困扰我好久,今天来查资料无意看到的文章,感觉作者很有心,收藏了,谢谢

  
#6楼 2012-05-05 12:05 | 烈燃  
这两种方式都存在一个问题,就是程序开多了,保存的全局 会被释放掉。
楼主有没有更好的方式 保存 全局变量啊。

  
#7楼 [ 楼主] 2370440 2012/5/6 7:59:13 2012-05-06 07:59 | fly_binbin  
@烈燃
引用烈燃:
这两种方式都存在一个问题,就是程序开多了,保存的全局 会被释放掉。
楼主有没有更好的方式 保存 全局变量啊。

程序怎么会开多呢?Activity始终是一个的啊,如果你程序崩溃的话,可能会影响到全局变量!还没有遇到过程序开多的问题啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值