在AndroidManifest.xml文件中的 intent-filter 元素中有这么两句:

<activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity>

当写好的应用发布到手机上之后,当双击”抽屉“里该应用的图标时,系统会将这个点击事件包装成一个Intent,该Intent包含两个参数,如上所述的两个参数action, category
被传递给应用之后,在应用的功能清单文件中寻找与该意图匹配的意图过滤器,如果匹配成功,找到相匹配的意图过滤器所在的Activity元素,再根据
activity 元素的”name“属性来寻找其对应的Activity类。接着Android操作系统创建该Activity类的实例对象,对象创建完成之后,会执行到该类的onCreate方法,
此onCreate方法是重写父类Activity的onCreate方法而实现的。onCreate方法用来初始化Activity实例对象。如下是AndroidUIdemo.java类中的onCreate方法的代码:

  @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.caculator_layout);Log.d(TAG,"debug");Log.i(TAG,"info");Log.w(TAG,"warm");Log.e(TAG,"error");Log.v(TAG,"verbose");//找控件initView();//设置点击事件initClickEvent();}

一、 super.onCreate(savedInstanceState)

其中super.onCreate(savedInstanceState)的作用是调用其父类Activity的onCreate方法来实现对界面的图画绘制工作。
在实现自己定义的Activity子类的onCreate方法时一定要记得调用该方法,以确保能够绘制界面。

super.onCreate主要是加载一些组件。

第一件事情便是super.onCreate(savedInstanceState),其实这条语句放在子类中的onCreate方法中的任何位置都可,问题只是
super.onCreate(savedInstanceState)必须要被执行,所以,最好也就是放在第一行,看起来比较明确。

在TargetActivity中重写了onCreate方法,而在Activity中的onCreate方法中已经对一些基本的基础进行了操作,如果子类没有super.onCraete方法的调用,会导致子类中的onCreate方法功能不全,从而出现错误。

savedInstanceState

在activity的生命周期中,只要离开了可见阶段,或者说失去了焦点,activity就很可能被进程终止了!,被KILL掉了,,这时候,就需要有种机制,能保存当时的状态,这就是savedInstanceState的作用。
当一个Activity在PAUSE时,被kill之前,它可以调用
onSaveInstanceState()来保存当前activity的状态信息(在paused状态时,要被KILLED的时候)。用来保存状态信息的Bundle会同时传给两个method,即onRestoreInstanceState() and onCreate().

二、setContentView(R.layout.caculator_layout)

作用:加载一个界面。
该方法中传入的参数是”R.layout.caculator_layout“,其含义为R.java类中静态内部类layout的静态常量caculator_layout的值,
而该值是一个指向res目录下的layout子目录下的caculator_layout.xml文件的标识符。因此代表着显示caculator_layout.xml所定义的画面。

三、两种点击事件

 /**设置点击事件*/private void initClickEvent(){//第一种设置方式mCancel.setOnClickListener(new View.OnClickListener() {public void onClick(View v){Log.d(TAG, "content=="+((TextView)v).getText() );}});//第二种设置方式mPlusOrMinus.setOnClickListener(this);mPlus.setOnClickListener(this);}@Overridepublic void onClick(View v) {//如果有多个空间设置点击事件,我们这里需要统一处理的话,需要判断是//哪一个控件if(v == mPlusOrMinus){Log.d(TAG, "点击了mPlusOrMinus" + ((TextView)v).getText().toString());}else if(v == mPlus){//同样的方式去判断}//另一种方式及时用switch来判断id//先拿到idint id = v.getId();switch(id){case R.id.tv_number_one://one这个内容被点击了,就在这里处理break;case R.id.tv_equal://处理等号事件break;}}

控件初始化

  /**在这里找到控件*/private  void initView(){mCancel = (TextView) this.findViewById(R.id.tv_cancel);mPlusOrMinus = (TextView) this.findViewById(R.id.tv_plus_or_minus);mMod = (TextView) this.findViewById(R.id.tv_mod);mDivider = (TextView) this.findViewById(R.id.tv_divider);mOne = (TextView) this.findViewById(R.id.tv_number_one);mTwo = (TextView) this.findViewById(R.id.tv_number_two);mThree = (TextView) this.findViewById(R.id.tv_number_three);mTime = (TextView) this.findViewById(R.id.tv_time);mFour = (TextView) this.findViewById(R.id.tv_number_four);mFive = (TextView) this.findViewById(R.id.tv_number_five);mSix = (TextView) this.findViewById(R.id.tv_number_six);mMinus = (TextView) this.findViewById(R.id.tv_minus);mSeven = (TextView) this.findViewById(R.id.tv_number_seven);mEight = (TextView) this.findViewById(R.id.tv_number_eight);mNine = (TextView) this.findViewById(R.id.tv_number_nine);mPlus = (TextView) this.findViewById(R.id.tv_plus);mZero = (TextView) this.findViewById(R.id.tv_number_zero);}

Android onCreate 详解相关推荐

  1. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  2. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  3. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  4. android子视图无菜单,Android 菜单详解

    Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu) 选项菜单 可以通过两种办法增加选项菜单,一是在menu.xml中添加,该 ...

  5. Android SharedFlow详解

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/121911675 本文出自[赵彦军的博客] 文章目录 系列文章 什么是SharedF ...

  6. android fragment 优势,Android Fragment详解

    参考网址:Android Fragment详解 一.什么是Fragment? Fragment:是Android3.0开始新增的概念,意为碎片.Fragment是依赖于Activity的,不能独立存在 ...

  7. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  8. Android NFC详解(高级)

    上一章节讲到了 Android NFC的基本应用(Android NFC详解),这章延伸一下,介绍各种高级 NFC 应用,例如如何使用各种标签技术.如何写入 NFC 标签以及如何执行前台调度(借助前台 ...

  9. Android UI详解之布局管理器(一)

    Android UI详解之布局管理器 一.布局管理器 ①顶级父类View ②子类GroupView ③AbsoluteLayout.FrameLayout.LinearLayout.GridLayou ...

最新文章

  1. ONNX 浅析:如何加速深度学习算法工程化?
  2. 基于WINCE6.0+S3C2443的camera驱动
  3. 15合并两个排序的链表
  4. php csv 简单的导入
  5. Seeed Raspberry Pi广角摄像/相机模块 支持Pi所有版本 OV5647
  6. 天津政府应急系统之GIS一张图(arcgis api for flex)解说(二)鹰眼模块
  7. 【原创中】儿子,听爸爸跟你说
  8. Codeforces 408D Long Path (DP)
  9. 活动安排问题(51Nod-1428)
  10. Python 如何从字符串中提取 URL 链接
  11. mapper.xml 的配置
  12. maven下载及安装教程(保姆及教程)
  13. 树状笔记软件for linux,WikidPad:wiki风格的开源树状笔记管理软件(新增发布内容为html)...
  14. 只有一条线的生存分析图 复杂一点的生存分析 及其参数详细解释
  15. Accessing non existent property lineno of module
  16. java代理模式学习笔记
  17. Typecho炫彩鼠标插件:HoerMouse
  18. xms java_java xms xmx xmn xss解释
  19. excel 导入文本数据乱码问题
  20. 刚刚,京东推出“小京鱼”平台和五款智能新品,全面押注IoT

热门文章

  1. 如何分析android进程被杀问题
  2. 如何在 Joomla 网站上配置交互式 Lottie 动画
  3. Python打印日历
  4. source insight屏幕一闪一闪的解决方法
  5. 计算机毕业设计(附源码)python中药城药材销售管理系统
  6. 电脑怎样显示wifi连接到服务器,电脑如何打开wifi连接到服务器地址
  7. 小鸣单车:拖欠用户押金未退,却在今天发布债公告这是什么情况?
  8. python爬虫之scrapy框架
  9. yum安装RabbitMQ教程
  10. 看板娘 二次元 live2d