`
stephen830
  • 浏览: 2964640 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android使用Application总结

 
阅读更多

 

Android使用Application总结

 

Application 配置全局Context

第一步、写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里面实例化Application

第二步、配置全局的Context

<application android:name="com.appstore.service.MyApplication" ></application>

第三步、使用,使用的时候用的时候根据类的名称访问Context

Android程序的入口点

Android使用Google Dalvik VM,相对于传统Java VM而言有着很大的不同,在Sun的Java体系中入口点和标准c语言一样是main(),而每个Android程序都包含着一个Application实例,一个Application实例中有多个Activity、Service、ContentProvider或Broadcast Receiver。因为大部分的应用都包含Activity所以,说很多网友认为是Activity的onCreate,但是你没有发现你的工程中有多个Activity吗? 你可能没有见过没有Activity的Android应用吧。

其实在android.app.Application这个包的onCreate才是真正的Android入口点,只不过大多数开发者无需重写该类,他的继承关系如下图:

java.lang.Object
? android.content.Context
? android.content.ContextWrapper
? android.app.Application

android.app.Application类包含了4个公开的方法

void  onConfigurationChanged(Configuration newConfig)
void  onCreate()  //这里才是真正的入口点。
void  onLowMemory()
void  onTerminate()

所以希望大家,记住真正的Android入口点是application的main,你可以看下androidmanifest.xml的包含关系就清楚了,并不是每个应用都必须有Activity的。

android中application 关于全局变量

android编程中,application这样的名词似乎变得那样的不常见,而让大家更为熟悉的是activity、intent、provider、broadcast和service。但其实android中的application也有着它自身的用处。

打开manifest文件,会看到有一个application配置标签,这就是有关application的使用了。那究竟application有什么用处呢?来看看SDK中是如何描述的:

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.

就是说application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。所以当我们需要创建全局变量的时候,不需要再像 j2se那样需要创建public权限的static变量,而直接在application中去实现。只需要调用Context的 getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应的处理。

因小工程中涉及到的文件比较多,这里就贴代码撒。

application文件:

Java代码:

public class TestApplication extends Application {

private int curIndex;

public int getCurIndex() {

return curIndex;

}

public void setCurIndex(int curIndex) {

this.curIndex = curIndex;

}

@Override

public void onCreate() {

super.onCreate();

}

@Override

public void onTerminate() {

super.onTerminate();

}

}

application中有一个curIndex和setter getter方法。

第一个acitivty中对application进行的操作:

Java代码:

TestApplication application = (TestApplication) this.getApplication();

Log.i("data", ""+application.getCurIndex());

application.setCurIndex(5);

第二个Activity:

Java代码:

TestApplication application = (TestApplication)this.getApplication();

Log.i("data", ""+application.getCurIndex());

application.setCurIndex(6);

第三个Activity:

Java代码

final TestApplication application = (TestApplication) this.getApplication();

Log.i("data", ""+application.getCurIndex());

在运行过程中,每一次都kill掉对应的Activity,再进入下一个Activity。

分享到:
评论

相关推荐

    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课程设计---基于Android系统的音乐播放器设计与实现.doc

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

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

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

    Android复习课后加笔记.pdf

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

    Android移动开发实验4.doc

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

    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