有段时间没有认认真真研习过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. LINQ(Language Integrated Query)

    LINQ http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html LINQ是.NET Framework 3.5的新特性,其全称 ...

  2. openlayers5学习笔记-map事件(moveend)

    //事件:地图移动结束 tmp.map.on('moveend', function (evt) { console.log(evt.frameState.extent); }); evt.frame ...

  3. Ubuntu 终端配置

    安装zsh apt install zsh 设置zsh为默认shell chsh -s /bin/zsh 恢复 bash 使用 chsh -s /bin/bash 安装 Oh My Zsh sh -c ...

  4. ZooKeeper概念

    这可能是把ZooKeeper概念讲的最清楚的一篇文章 相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么, ...

  5. 在eclipse中maven构建Web项目,tomcat插件在maven中的运用

    1.选中maven,构建maven  web 2.项目构建好之后发现一个错误如图,是因为没有servlet的API,我们需要在pom.xml 中对servlet的API进行依赖 pom.xml如下即可 ...

  6. Python hangman小游戏

    hangman # words.py 使用pickle永久性存储数据 import pickle filename = 'words.pk' data = ['cat', 'dog', 'perro' ...

  7. Python 使用matplotlib模块模拟掷骰子

    掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...

  8. 服务器重启后启动Docker命令

    启动步骤: 1.启动Docker 守护进程 systemctl daemon-reload 2.Docker启动命令: systemctl start docker 3.查看docker服务是否启动 ...

  9. redis_1 安装和简单使用

    前言: mysql 数据库:数据以“文件形式存储在硬盘”里面.硬盘的存取速度很慢.数据库是一个系统中最占用资源的部分.当sql语句比较复杂(关联的表比较多的时候),每执行一次就会消耗大量的资源.倘若一 ...

  10. Unhandled 'error' event

    events.js: throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js ...