【Android个人理解(四)】自定义Application类的使用

1、为什么要重写Application类
如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型;而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是使用Application context。
那么为什么这样的全局变量就不符合Android的框架架构?
众说纷纭,我理解的是static访问是无法跨进程的。Android中的Activity,Service是可以在各自进程中运行的,用static传递参数到不同进程的Activity、Service时会错。

2、如何使用重写的Application类

Application类在源码上总述这样写道:
Base class for those who need to maintain global application state. You can
provide your own implementation by specifying its name in your
AndroidManifest.xml’s <application> tag, which will cause that class
to be instantiated for you when the process for your application/package is
created.

翻译:当我们需要保持全局变量时,使用这个类。(上文已说明,接着是如何使用这个类)
你可以通过自己取的名字,在 AndroidManifest.xml的application标签内声明并区分这个组件。声明后这个类将会在你的应用程序或者包所在的进程创建的时候,被实例化。

也就是说,使用自定义的Application类的步骤:
1)重写Application类,比如取名MyApplication。主要重写里面的onCreate方法,就是创建的时候,初始化变量的值。
2)修改配置文件ApplicationManifest.xml,将要运行的应用程序AppContext加进去:

<application
        android:allowBackup="true"
        android:name=".app.AppContext"

3)实例化自定义的Application对象

AppContext app;
app = (AppContext)getApplication();

4)对app的变量进行操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值