Android核心组件 Activity组件
1、Activity简介
四大组件之一的Activity组件,在应用中一个Activity可以用来表示一个界面,中文意思也可以理解为“活动”,即一个活动开始,代表Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运行和启动,Activity的生命周期交给系统统一管理。
理解以下四个基本概念,将有助于我们更好的了解Android系统内部机制:
Activity:活动,程序中的界面
Application:应用程序
Activity栈:管理Activity的栈结构
Task:任务
2、Activity状态
3、Activity生命周期
生命周期方法详解:

官方流程图:
package com.bothsunny.apps.a31_activity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import com.orhanobut.logger.Logger; public class MainActivity extends AppCompatActivity { /**
* 当一个Activity创建时会调用该方法,我们可以在该方法中进行组件的初始化工作
*
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Logger.i("MainActivity-onCreate");
} /**
* 在Activity可见,但还不能进行交互时会调用该方法
* 在onCreate之后调用
*/
@Override
protected void onStart() {
super.onStart();
Logger.i("MainActivity-onStart");
} /**
* 当Activity可以交互时调用
* 在onStart之后调用,该方法被调用后就表示Activity进入激活状态
* resumed状态
*/
@Override
protected void onResume() {
super.onResume();
Logger.i("MainActivity-onResume");
} /**
* 一个从stoped状态的Activity重新被激活时调用
* 接着会调用onStart()方法
*/
@Override
protected void onRestart() {
super.onRestart();
Logger.i("MainActivity-onRestart");
} /**
* 当前Activity被另一个Activity覆盖,失去焦点,但还可见,不能交互
* 那么此时当前Activity进入paused状态(暂停状态)
* 当此状态下Activity重新获取焦点时会再调用onResume()方法
*/
@Override
protected void onPause() {
super.onPause();
Logger.i("MainActivity-onPause");
} /**
* 当前Activity被另一个Activity完全覆盖,不可见且不可交互
* 那么此时当前Activity进入了stoped状态(停止状态)
* 此状态下的Activity被重新显示时,会调用onRestart()方法
*/
@Override
protected void onStop() {
super.onStop();
Logger.i("MainActivity-onStop");
} /**
* 当前Activity被销毁时调用,表示结束生命周期
*/
@Override
protected void onDestroy() {
super.onDestroy();
Logger.i("MainActivity-onDestroy");
}
}
4、Activity传递数据
Android核心组件 Activity组件的更多相关文章
- 详解 Android 的 Activity 组件
Activity 的生命周期 和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理.与 MIDlet 不同的是安装在 android 中的所有的 ...
- Android的Activity组件
本章主题是Activity组件:Activity是Android四大组价之一,其重要地位自然不用说.“Activity是应用程序中可见的交互组件的基类,大致上等同于传统桌面应用个程序开发中的窗体.”( ...
- Android 核心组件 Activity 之上
核心组件的特征 1. 必须继承自特定的类(Activity 或者 Activity的子类) 2. 必须注册: 通常是AndroidManifest.xml的 <application> 中 ...
- Android 核心组件 Activity 之下
创建新的Activity的方式: 1. 在相应的文件下 Ctrl + N (Eclipse, Android中不知道是不是) 2. 创建类,继承自Activity或者Activity的子孙类, 并在 ...
- Android中Intent组件详解
Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...
- Android源码——Activity组件的启动过程
根Activity启动过程 Launcher启动MainActivity的过程主要分为6个步骤: 一.Launcher向ActivityManagerService发送一个启动MainActivity ...
- Android的四大组件之Activity
Android的四大组件之Activity Activity:是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,B ...
- 解开Android应用程序组件Activity的"singleTask"之谜
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6714543 在Android应用程序中,可以配 ...
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8577789 在Android系统中,Activ ...
随机推荐
- 如何让我们的PHP在Jexus中跑起来
最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP.其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的.不过由于没有 ...
- Memcached简介
在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法.其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率. 除了能够提高服务的运行效 ...
- Redis集群搭建与简单使用
介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. 两台虚拟机都是 CentOS ,一台 ...
- CSharpGL(10)两个纹理叠加
CSharpGL(10)两个纹理叠加 本文很简单,只说明如何用shader实现叠加两个纹理的效果. 另外,最近CSharpGL对渲染框架做了修改,清理一些别扭的内容(DoRender()前后的事件都去 ...
- CSS3 滤镜
了解摄影活着美图秀秀之类美图软件的同学对滤镜肯定不陌生,CSS3对各种滤镜效果有了支持,可以做出很多好玩儿效果,走马观花了解一下 语法 filter: function(param); 很很多CSS3 ...
- TODO:一不顺眼就换字体Go之应用篇
TODO:一不顺眼就换字体Go之应用篇 字体,文字的外在形式特征.就是文字的风格,是文字的外衣.好的字体让人看得舒服,让人更有看.写的欲望哦.2016-11-16 GO官方博客发布了同名Go字体,并没 ...
- Entity Framework 6 Recipes 2nd Edition(13-1)译 -> 优化TPT继承模型的查询
问题 你想提高在一个TPT继承模型里的查询 解决方案 让我们假设有一个简单的TPT继承模型,如图Figure 13-1 Figure 13-1. A simple Table per Type inh ...
- iOS 之项目中遇到的问题总结
昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...
- 为 Sublime Text 3059 配置 PHP 编译环境
关于 Sublime Text 3059 的安装及汉化 请参看 http://www.xiumu.org/note/sublime-text-3.shtml 为 sublime Text 配置 PH ...
- springmvc环境搭建以及常见问题解决
1.新建maven工程 a) 打开eclipse,file->new->project->Maven->Maven Project b) 下一步 c) 选择创建的工程为 ...