Android Application

  翻遍了Hello World项目中包含的全部文档,却并没有发现Application类的存在。能够找到的影子,却只有在AndroidManifest.xml文件中存在的<Application>节点。

  每个人学习Android开发都会有不同的切入点,经过初步的学习,我还是决定把自己的切入点放在Android.app.Application上。为什么?因为,HelloWorld应用中目前只用到了Android.app中的Activity、ActionBar类,以及Application类。

  如果你开发过VB程序,那么你会知道VB6中的Application.Run()函数,传递不同的参数就可以改变我们的初始运行窗体,而Application不妨视为我们开发的程序在运行时的实例。当然,如果你不知道也没有关系,我们就把应用程序的运行时当成Android.app.Application的实例化好了。

  关于Application,我胡思乱想中,画了以下这个草图。


  Manifest文件中只允许包含一个Application节点,所以,在我这种初学者的层面,Application就几乎是整个Android应用的全部了。而在Application的内部,我们可以定义Activity,可以定义Fragment等等,甚至后台的Service,这样,就可以实现从底层到顶层,从后台到前台的目标应用了。

  Appliction中主要提供了5个方法:onConfigurationChanged(Configuration newConfig)、onCreate()、onLowMemory()、onTerminate()、onTrimMemory(int level)。具体意义不讲了。点击链接可以查看具体说明。

  当我们需要创建更为复杂应用的时候,就可以从Application类继承以实现更为复杂的应用。比如在OnCreate()中可以初始化默认配置,比如onTerminate()保存应用在当时的运行状态,以便将来再运行的时候恢复运行,使得应用仿佛没有中断过一样。

  尽管Application还包含了registerActivityLifecycleCallbacks、unregisterActivityLifecycleCallbacks等3对函数,但我想这些跟前面的那些方法组合起来,不正是在管理着应用的整个生命周期吗?

  另外,学过ASP开发的同学们,应该知道global.asa中可以定义两种级别的OnStart和OnEnd事件,Application_OnStart代表了应用级的初始化事件,Session_OnStart代表了会话级的初始化事件。Android的Application难道不也是应用级的吗?尽管有说明表示Indent是Activity之间交换信息的主要方式,但这种交互不知道用不用得到Application级别的变量呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值