有段时间没有认认真真研习过android了,android毕竟是我进这个软件开发圈子接触的第一门技术,android已经成了口头禅之类的东西了.当初学习android的时候大都是草草了事浮于表面,很多知识点没有深入学习,导致现在基础不是很牢靠.在遇到某些高度技术问题的时候思路容易断,所以我决定用博客来记录回炉学习的过程.网上博客简直多如牛毛,而我想写一些属于自己的东西,就是话比较多比较啰嗦但是很容易理解的东西,不会出现很多让新手看不懂的代码,出现的代码每行我都会注释是什么意思.我一直把自己当新手.剑圣有句台词就说"真正的大师永远怀着一颗学徒的心".哈哈哈,虽然我还不是大师.

       首当其冲的就是Activitty,android四大组件之首.几乎可以说是最重要的一个组件.今天就从Activity开始回炉吧.

一.什么是Activity?

      Android的四大组件分别是Activty/Service/Broadcast Receiver/Content Provider.  Activity翻译过来就是活动的意思,在android里面可以理解成用户能看到的一个界面并且和用户能产生交互.可以说,一个app里面你所有能看到的东西都是Activity.我们可以在一个Activity上放很多东西,比如列表,图片,按钮等等.然后通过别的组件使这些"死"的东西变成"活"的.如何把他们变成活的,都会在后续的博客中陆续更新.

1.1 Activity的生命周期

     要学习Activity就不得不提起他的生命周期,至关重要!生命周期中每一段都在Activity的一生中扮演着独一无二不可替代的角色,就像我们人的一生中也有很多至关重要的时期一样.

     要了解生命周期就必须对Activity的运行状态有深刻的了解,一个Activity大致经过四个运行状态.

    a.运行状态:Activity处于前台,即你可以看的见的,并且可以获得焦点.(获得焦点就是可以操作可以交互的意思)

    b.暂停状态:Activity仍然处于前台,仍然可见,但是失去焦点.举一个很常见的场景你就明白了.比如你正在玩微信,此时来了一条短信,这条短信的对话框并没有占满整个屏幕而是一小块,此时你既能操作回复短信,又能看到部分微信的界面但是无法操作微信界面.这时就称当前微信的Activity处于暂停状态.

    c.停止状态:Activity不可见,并且失去焦点.比如你从一个人的对话框页面退出了去看朋友圈了,此时就说那个对话框页面Activity处于停止状态.你看不到他了.

    d.销毁状态:Activty彻底结束,好比一个人的一生就结束了.只不过人生无法重来,Activity却可以Restart~

   当你了解了一个活动的运行状态后就应该去了解下他具体的生命周期是怎么运作的了.每一个运行状态背后都藏着不为人知的生命周期.哈哈~

   Activity一共有七个生命周期:onCreat()  onStrat()  onResume()   onPause()  onStop()  onDestory()  onRestart().大家看英文就应该能大致知道他们各自的意思.细心的话可以发现他们是首尾对应的.

//onCreat是生命周期的第一个方法,意思就是创建!也就是说当一个Activity创建的时候是调用这个方法.在这方法里可以做一些初始化操作,比如加载布局,初始化方法等等
   @Override protected void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);}
 
//onStart是当Activty创建好之后显示到屏幕上时调用的方法,也就是说此时你可以看到Activity但还不能交互
   @Override protected void onStart() {
         super.onStart(); }
 
//onResume被回调的时候就是可以和Activity产生交互了 比如你点击一些按钮,图片什么的
    @Override protected void onResume() {
         super.onResume(); }
 
 //onPause方法即暂停 这个方法就是在上面提到的暂停状态的时候调用,比如你正在发短信突然来了个电话此时就需要调用这个方法来保存你正在发短信的页面,可以在里面写一些方法用来保存你正在输入的内容,不然等你电话挂了 你打的短信内容全都没了,嗯这种用户体验谁都不想要有吧? 这就是这个方法的作用!
    @Override protected void onPause() {
        super.onPause(); } //onStop方法即是停止 紧跟在onPause后面调用 一个活动要想停止,首先得暂停  比如你按home键并不按返回键,此时只是将Activity最小化并没有销毁
    @Override
protected void onStop() {
       super.onStop();
}
 
 //onDestory即销毁 紧跟在onStop后面 同理一个活动要销毁前必须先停止
    @Override
protected void onDestroy() {        super.onDestroy();
}  
//onRestart方法即重启  当一个Activity被销毁后系统重新开启这个activity是调用这个方法
@Override
protected void onRestart() {       super.onRestart();
}

如果说这样的话你依然对生命周期的过程不完全理解的话,我只能说那很正常,因为我写的不太好!建议大家用log的方法将日志打印出来,在两个Activity之间来回切换看看这些方法到底怎么调用的.

     

       

Android回炉系列之四大组件之首Activity的更多相关文章

  1. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  2. Android四大组件之——Activity的开启:StartActivity()和StartActivityForResult()(图文详解)

                如需转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com   ...

  3. Android的四大组件之Activity

    Android的四大组件之Activity Activity:是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,B ...

  4. Android四大组件之Activity(活动)及其布局的创建与加载布局

    Android四大组件之Activity(活动)及其布局的创建与加载布局 什么是Activity ? 活动(Activity)是包含用户界面的组件,主要用于和用户进行交互的,一个应用程序中可以包含零个 ...

  5. Android 四大组件之 Activity(一)

    1.Activity的定义及作用: Android系统中的四大组件之一,可以用于显示View.Activity是一个与用户交互的系统模块,几乎所有的Activity都是和用户进行交互的一个应用程序的组 ...

  6. 【Android开发日记】之入门篇(四)——Android四大组件之Activity

    在Android中,无论是开发者还是用户,接触最多的就算是Activity.它是Android中最复杂.最核心的组件.Activity组件是负责与用户进行交互的组件,它的设计理念在很多方面都和Web页 ...

  7. 【Android】安卓四大组件之Activity(二)

    [Android]安卓四大组件之Activity(二) 前言 在这篇文章之前,我已经写过了一篇有关Activity的内容,是关于activity之间的页面跳转和数据传递,而这篇文章着重强调的是Acti ...

  8. 【Android】安卓四大组件之Activity(一)

    [Android]安卓四大组件之Activity(一) 前言 Activity是Android学习中的一个重要组件,想要对其进行系统的了解可以分为几块内容,这一大章节的内容是有关于activity之间 ...

  9. 安卓四大组件之一activity

    概要说明 Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播 ...

随机推荐

  1. Swift中self和Self

    Self相当于oc中的instance 是什么 相信大家都知道self这个关键字的具体作用,它跟OC里的self基本一样.但是对于Self来说...(WTF,这是什么东西) 当你用错Self的时候编译 ...

  2. macOS 不用任何第三方工具 简单两步使用 Automator 将截图转成@1x

    制作 Automator 脚本 打开 Automator -> 选择服务,左侧搜索 shell,双击打开,右侧粘贴以下内容,将上部 服务收到... 改成 没有输入,CMD+S保存,名称就叫 屏幕 ...

  3. H3C交换机telnet服务认证模式配置

    以H3C交换机为例,介绍telnet服务的三种认证方式配置(none无需认证,password密码认证,scheme账户+密码认证) None认证模式配置步骤:[H3C]telnet server e ...

  4. 洛谷P2827 蚯蚓 队列 + 观察

    我们不难发现先被切开的两半一定比后被切开的两半大,这样就天然的生成了队列的单调性,就可以省去一个log.所以,我们开三个队列,分别为origin,big,smallorigin, big, small ...

  5. Linux进程地址管理之mm_struct

    FROM : http://www.cnblogs.com/Rofael/archive/2013/04/13/3019153.html Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进 ...

  6. HDU1846 - Brave Game【巴什博弈】

    十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻.  今天,大家选 ...

  7. [tyvj-1061]Mobile Service 动态规划

    滚动数组优化一波. 原设计状态:表示三个员工分别的位置和执行到的任务. 考虑到:执行完第i个任务,一定有员工在pos[i],那么就可以压一维,空间复杂度就算不滚动数组也可以了. (喜闻乐见,今天第一次 ...

  8. alsa文章

    http://blog.csdn.net/azloong/article/details/6140824 http://blog.csdn.net/tianshuai1111/article/deta ...

  9. TFRecords转化和读取

    标准TensorFlow格式 TensorFlow的训练过程其实就是大量的数据在网络中不断流动的过程,而数据的来源在官方文档[^1](API r1.2)中介绍了三种方式,分别是: Feeding.通过 ...

  10. struct 模块简介

    用处 按照指定格式将Python数据转换为字符串,该字符串为字节流,如网络传输时,不能传输int,此时先将int转化为字节流,然后再发送; 按照指定格式将字节流转换为Python指定的数据类型; 处理 ...