Android程序的真正入口Application

原创 2011年07月13日 11:40:14
 
接触android已经有一段时间了,一直以为android程序的入口是配置文件中指定的Activity,最近看一个开源项目,发现里面实现了android 的Application类,才知道,android程序的真正入口是Application类的onCreate方法。只不过大多数开发者无需重写该类,它的继承关系如下图: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()


下面是测试代码:
使用application需要两个步骤:1.复写Application类,2.在配置文件中配置
示例代码如下:
MyApp类:

package app.app;
import android.app.Application;
import android.content.res.Configuration;

public class MyApp extends Application {
@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
}

@Override
public void onCreate() {
  super.onCreate();
  
System.out.println("MyApp is called");
}

@Override
public void onLowMemory() {
  super.onLowMemory();
}

@Override
public void onTerminate() {
  super.onTerminate();
}

}



配置文件:
<application android:icon="@drawable/icon" android:label="@string/app_name"android:name="app.app.MyApp" >
  ......

</application>

Activity类:
public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  System.out.println("MainActivity is called");

   
}

结果:MyApp is called       MainActivity is called   

  注释1:在Android中,Application只是一个松散的表征概念,没有多少实质上的表征[和J2me的Midlet有明显区别]。Application类,代表应用程序上下文状态,是一个极度弱化的概念。Application只是一个空间范畴的概念,Application就是Activity,Service之类的组件上下文描述。Application并不是Android的核心概念,而Activity才是Android的核心概念
注释2:MyApplication类的作用是为了放一些全局的和一些上下文都要用到变量和方法。

原文:Android程序的真正入口Application
http://www.pocketcn.com/forum-viewthread-tid-1565-fromuid-1477.html

相关文章推荐

Android程序的入口点

android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如a...

Application是Android程序的真正入口

Application类 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来...

ubuntu14.04 使用git

创建SSH Key 由于你的本地Git仓库和Github 仓库之间的传输是SSH加密的,所以需要一点设置: ssh-keygen -t rsa -C "youremail@domain.com"然后一...

android手机客户端与pc机进行socket通信

android与pc机通过socket连接进行网络通信

Android开发框架搭建——应用程序的入口Application配置(一)

大家都知道每一个Android程序都要配置一个application,今天我们就来了解一下application的这层神秘的面纱吧。 什么是Application Application的生命周期 A...

【Pomelo源码分析】2016-09-21 程序入口(app.js, pomelo.js, application.js)

Pomelo程序入口,app.js、pomelo.js、application.js文件的源码分析

程序的真正入口

VC++开发的程序,在调试时总是从main或者WinMain函数开始,这就容易让人误会它们是程序的第一条指令执行处,这个认识其实是错误的main和WinMain也是一个函数,也需要一个调用者,在它们被...

c++程序真正入口函数

c++程序真正入口函数                我们以前写windows控制台程序时,都是先写个main()函数,写windows窗口程序时,首先要写winmain()函数,然...
  • DemonDe
  • DemonDe
  • 2016年12月19日 23:18
  • 2448

Android 应用的真正入口 - ZygoteInit.java

从源码位置上来讲 源码中 ActivityThread的位置: /frameworks/base/core/java/android/app/ActivityThread.java 可以看到是位于 a...

Android应用程序的入口

Android内核机制
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android程序的真正入口Application
举报原因:
原因补充:

(最多只允许输入30个字)