`
xiongpan0807
  • 浏览: 15725 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android使用Application总结

阅读更多

     Application 和Activity、Service一样是一个Android的系统组件,在程序被启动的时候android系统会创建一个单例的实例,Application的如何使用,又有哪些实际的作用呢?

 

   一、使用方式:

          1. 首先写一个类继承于Application;

          2.在mainifest中的Application标签中的   android:name 属性中指定你自己的Application类;

          3.通常在Activity中使用getApplication()来获得Application对象。

 

  二、它的作用:

     1.Application 是程序的入口,普通的java程序的入口是main函数,但是我们在android程序中似乎并没有写mian()函数,那么程序是从哪里开始执行的呢,答案就是从Application的OnCreate()方法开始的,我们写一个实例证明这一点;

public class MyApplication extends Application {
	@Override
	public void onCreate() {
		Log.i("order", this.getClass().getName());
		super.onCreate();
	}
}

 

    示例中唯一的一个Activity MainActivity

 

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Log.i("order", this.getClass().getName());
	}
}

执行结果:




  从图上可以很清楚的看到,android程序启动后先调用了Application的OnCreate() 的方法,后面再调用的了Activity的OnCreate()方法,知道了这个,我们就可以把application中要初始化的数据放在application中,需要是直接获得。

 

2.传递对象

   在android中我们在两个Activity之间通常使用的是Intent来进行传递值,Intent传递一些基本的数据类型时候还比较方便,但是在传递对象的时候则需要这个对象类A实现了Serializable或者Parcellable接口,如果类A的成员变量中还包含有类B,那么类B也必须实现Serializable或者Parceallable接口,这样传递对象引用就先的非常的复制,但有了Application我们就不会那么麻烦了,还是刚刚的MyApplication类,对它进行一下扩充

public class MyApplication extends Application {
	
	public  HashMap<String , Object> Data=new HashMap<String, Object>();
	
	@Override
	public void onCreate() {
		Log.i("order", this.getClass().getName());
		super.onCreate();
	}
}

   我们对上面的类添加了一个HashMap为application成员变量,这样在传递对象引用的时候, 我们就可以把引用放到这个HashMap中,然后把它key通过Intent传递过去,再在通过getApplication()获得到Application,这样就可以通过application完成对象的传递,需要强调下的时可以这样做一个很重要的原因是Appliation它本身就是一个单例的,为了防止内存泄漏,我们在另一个Activity中接受到引用后,我们应该把这个引用从HashMap中remove掉。

 

3、缓存数据,已微信朋友圈为例,当进入朋友圈刷新后,可以把从网络上获得的数据放到Application中缓存起来,如果用户进入到其他页面然后有再回来到朋友圈,在用户没有刷新的情况下 ,我们就可以直接读取Appliation中的数据,减少网络访问,如果有一些特别大的数据内容(比如大图片),最好使用软引用的方式进行缓存防止内存溢出。

    

   Application 运用时一定要注意防止内存泄漏。出现“out Of Memery Error”

 

  

 

 

 

  • 大小: 3.8 KB
分享到:
评论

相关推荐

    Android-androidWebviewApplication使用总结

    android WebviewApplication使用总结

    自己平时做的android相关的总结

    Application的使用小总结 “call to OpenGL ES API with no current context (logged once per thread” 问题的解决 2013年9月7日19:15:33:我的平板分辨率很高可是运行public void onSurfaceChanged(GL10 gl, int ...

    Android 屏幕适配总结

    Android 屏幕适配总结 Android ConstraintLayout 使用与适配(使用篇) Android ConstraintLayout 使用与适配(适配篇) 目录 一、与屏幕相关的概念 1. 屏幕尺寸 2.屏幕分辨率 3. 屏幕像素密度(dpi) 二、为什么需要...

    Android技术总结+面试题

    Android技术总结+面试题 经典问题之一 如何退出Activity?如何安全退出已调用多个Activity的Application? 后面的自己看去吧。。。。

    《深度理解Android:第一卷》

    内容广泛,以对Framework层的分析为主,兼顾Native层和Application层;分析深入,每一部分源代码的分析都力求透彻;针对性强,注重实际应用开发需求,书中所涵盖的知识点都是Android应用开发者和系统开发者需要重点...

    Android移动开发实验4.doc

    " "(8)完成以上操作后,在"包资源管理器"中的项目名称节点上,单击鼠标 " "右键,在弹出的快捷菜单中,选择"运行方式/Android " "Application"菜单项通过模拟器运行程序。 " "四、程序调试(结果及分析) " " " ...

    android平台sensor从底层到上层流程介绍.doc

    非常详细的sensor流程整理总结,图文结合。值得从事android hal层开发的人一看。 从这个图来看Sensor的架构还是非常的清淅, 黄色部分表示硬件,它要挂在I2C总线上 红色部分表示驱动,把驱动注册到Kernel的Input ...

    Android课程设计---基于Android系统的音乐播放器设计与实现.doc

    根据Android的软件框图,其软件层次结 构自下而上分为以下几个层次: 第一、操作系统层(OS) 第二、各种库(Libraries)和Android 运行环境(RunTime) 第三、应用程序框架(Application Framework) 第四、应用...

    Android复习课后加笔记.pdf

    Android期末复习总结,用于期末复习、课后题源自学校发的教材。 部分内容: Android架构层: Linux内核层(LinuxKernel) 系统运行时库层(Libraries和 AndroidRuntime) 应用程序架构层(ApplicationFramework) 应用...

    Android开发之TextView控件用法实例总结

    本文实例总结了Android开发之TextView控件用法。分享给大家供大家参考,具体如下: TextView控件可以向用户展现文本信息,我们可以设置该文本信息是否能编辑 1、TextView基本使用 在程序中创建TextView对象 在xml...

    深入理解Android:卷I--详细书签版

    10.2.3 android.process.media媒体扫描工作的流程总结 471 10.3 MediaScanner分析 472 10.3.1 Java层分析 472 10.3.2 JNI层分析 476 10.3.3 PVMediaScanner分析 479 10.3.4 关于MediaScanner的总结 485 10.4 ...

    android群雄传

    2.2 Android Studio高级使用技巧 19 2.2.1 更新SDK 20 2.2.2 Android Studio常用界面 21 2.2.3 导入Android Studio工程 23 2.3 ADB命令使用技巧 24 2.3.1 ADB基础 24 2.3.2 ADB常用命令 25 2.3.3 ADB命令来源...

    AndroidTips:Android开发中的一些技巧。Android开发总结。

    Android开发总结。 前言 我们在日常开发中,会遇到各种各样的问题,或大或小。正是通过解决这些问题,从而我们的开发技能得到进步。养成记录的好习惯,方便自己日后查看,也方便广大开发者能找到自己遇到的问题的...

    实验1:第一个Android程序.pdf

    四、实验总结 四、实验总结 答:通过此次实验熟悉了android studio和eclipse的基本安装过程,并学会了配置相应的环境变量。通过分别在eclipse和android studio 中创建⼯程,对⽐分析了两者的相同点和不同点,相⽐于...

    Android中应用多进程的整理总结

    本文将试图对于Android中应用多进程做一些整理总结。 android:process 应用实现多进程需要依赖于android:process这个属性 适用元素:Application, Activity, BroadcastReceiver, Service, ContentProvider。 通常...

    Android 开发隐藏标题栏的方法总结

    android 开发隐藏标题栏的方法总结 1. 推荐!(因为现在工程都默认的为AppTheme) 在value/styles.xml里面添加自定义属性 &lt;resources xmlns:android=http://schemas.android.com/apk/res/android&gt; &lt;!-- ...

    Android开发宝典.rar

    应用程序基础Application Fundamentals 4 关键类 4 应用程序组件 5 激活组件:intent 7 关闭组件 7 manifest文件 8 Intent过滤器 8 Activity和任务 10 Affinity(吸引力)和新任务 11 加载模式 12 清理...

    Android开发性能优化总结

    一. 加载 预加载:1.反射注解框架Reflect信息,在Application内多线程预加载至缓存。...2. 并发操作多用读写锁,少用synchronized,Android虚拟机Art直到Android6.0为止尚未对synchronized做CAS优化,而sy

    XinFramework:Android 快速开发框架 总结以往开发结合三方项目 不断更新

    根据工作总结和三方开源代码,符合国内设计风格,做一个简单、快速的开发框架,可以拿来就搭建新的项目。  由于工作比较忙只能闲暇时间来做,2017年6月第一次提交,基本满足小型项目的使用,之后会开发组件化版本...

    Android dex 加密源码

    博客 【Android 安全】DEX 加密 ( 阶段总结 | 主应用 | 代理 Application | Java 工具 | 代码示例 ) ★ 对应源码 https://hanshuliang.blog.csdn.net/article/details/110450891

Global site tag (gtag.js) - Google Analytics