Android回炉系列之四大组件之首Activity
有段时间没有认认真真研习过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的更多相关文章
- Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
- Android四大组件之——Activity的开启:StartActivity()和StartActivityForResult()(图文详解)
如需转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com ...
- Android的四大组件之Activity
Android的四大组件之Activity Activity:是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,B ...
- Android四大组件之Activity(活动)及其布局的创建与加载布局
Android四大组件之Activity(活动)及其布局的创建与加载布局 什么是Activity ? 活动(Activity)是包含用户界面的组件,主要用于和用户进行交互的,一个应用程序中可以包含零个 ...
- Android 四大组件之 Activity(一)
1.Activity的定义及作用: Android系统中的四大组件之一,可以用于显示View.Activity是一个与用户交互的系统模块,几乎所有的Activity都是和用户进行交互的一个应用程序的组 ...
- 【Android开发日记】之入门篇(四)——Android四大组件之Activity
在Android中,无论是开发者还是用户,接触最多的就算是Activity.它是Android中最复杂.最核心的组件.Activity组件是负责与用户进行交互的组件,它的设计理念在很多方面都和Web页 ...
- 【Android】安卓四大组件之Activity(二)
[Android]安卓四大组件之Activity(二) 前言 在这篇文章之前,我已经写过了一篇有关Activity的内容,是关于activity之间的页面跳转和数据传递,而这篇文章着重强调的是Acti ...
- 【Android】安卓四大组件之Activity(一)
[Android]安卓四大组件之Activity(一) 前言 Activity是Android学习中的一个重要组件,想要对其进行系统的了解可以分为几块内容,这一大章节的内容是有关于activity之间 ...
- 安卓四大组件之一activity
概要说明 Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播 ...
随机推荐
- Debian 6 , 十个串口为什么只识别到了 6个 剩下4 个被禁止了
0.946441] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled [ 0.946533] serial8250: ttyS0 a ...
- ack 工具
ack-tools ack其实就是快速查找工具,但centos在没有这个安装包. 下载安装 cd /tmp git clone https://github.com/dongci/ack.git cd ...
- 算法46----移除K位数字
一.题目:移除K位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示 ...
- yii2.0 表单小部件常用的默认选中
下面自己总结了一下表单小部件中经常使用到的一些默认选中 直接在视图代码里面说明啦 <?php //这个表头就不多说了 use yii\helpers\Html; use yii\widgets\ ...
- HDU 4133
注意题目中的一句话:If a number m has bigger evaluating value than all the numbers smaller than it... 这让我重新想过反 ...
- listView中adapter有不同的click事件的简单写法
在android中,listview一般都是通过一个adapter来绑定数据,一般的item的点击事件都会指向同一个目标(intent),仅仅是所带的參数不同而已.但有的时候事与愿违,每一个item的 ...
- VMWare虚拟机下为Ubuntu 12.04.1网络设置(NAT方式)
NAT方式: 虚拟机能够上外网,能够訪问宿主计算机所在网络的其它计算机(反之不行). 第一步:设置虚拟机vmware网络參数 (1)打开虚拟机,选择菜单"编辑">" ...
- iOS_6_ToolBar+xib+红楼梦
终于效果图 BeyondViewController.h // // BeyondViewController.h // 6_ToolBar // // Created by beyond on 14 ...
- idea使用技巧资料篇
基本使用:https://my.oschina.net/lujianing/blog/177042#OSC_h1_2 解决idea卡顿问题:http://www.cnblogs.com/ae6623/ ...
- bzoj1503: [NOI2004]郁闷的出纳员(伸展树)
1503: [NOI2004]郁闷的出纳员 题目:传送门 题解: 修改操作一共不超过100 直接暴力在伸展树上修改 代码: #include<cstdio> #include<cst ...