再来说说Activity
经过前面多天的了解,现在可以确信一点: activity提供了用户和程序交互的界面。
而且android里有四大组件:Activity,Service,BroadcastReceiver,ContentProvider.
Activity的使用,标准化流程大概如此:
- 继承android的Activity类
- 重写需要实现的方法
- 设置显示布局
- 在AndroidManifest.xml文件中,注册Activity
Activity的生命周期:
onCreate(); 创建
onStart(); 运行
onResume(); 获取焦点
onPause(); 失去焦点
onStop(); 暂停
onDestroy(); 销毁
onRestart(); 重新导航到活动
如下图:(自己手绘一遍,感觉清晰一点儿)
Activity的四种状态
- 活动状态 (Active / Running) ------Actitivy处于界面最顶端
- 暂停状态 (Paused) -----Activity失去焦点,但对用户可见
- 停止状态(不可见状态) ----Activity被完全遮挡,但保留所有状态和成员信息
- 非活动状态(killed) ------Activity被终止
创建 –> 销毁
onCreate() –> onStart() –> onResume() –> onPause() –> onStop() –>onDestroy()
从启动到后台,再到前台的生命周期
onCreate() –> onStart() –> onResume() –> onPause() –> onStop() –> onRestart() –> onStart() –>onResume()
(注意:这里的停止状态,activity被完全遮挡,但是保留所有状态和成员信息)
从启动到失去焦点,再到获取到焦点
onCreate() –> onStart() –> onResume() –> onPause() –>onResume()
玩一玩:
新建一个工程,只用改一改 MainActivity.java就可以了
package com.example.activitytest;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private String Tag = "tag";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(Tag, "onCreat()");
}
@Override
protected void onStart() {
super.onStart();
Log.i(Tag, "onStart()");
}
@Override
protected void onResume() {
super.onResume();
Log.i(Tag, "onResume()");
}
@Override
protected void onPause() {
super.onPause();
Log.i(Tag, "onPause()");
}
@Override
protected void onStop() {
super.onStop();
Log.i(Tag, "onStop()");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(Tag, "onDestroy()");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(Tag, "onRestart()");
}
}
然后在LogCat中建立一个Filter

运行开始看Log


进行如下操作,切换一个Activity





此时画面为:

再点“返回”,即下图


此时回到手机主页面了,真的销毁了

我猜想,如果点击该activity如果弹出一个小的对话框,但是原来的activity还是可见的,那就会上演
onCreate() –> onStart() –> onResume() –> onPause() –>onResume()
总之先这样,如果以后发现不对的话,再来修改吧。
再来说说Activity的更多相关文章
- 浅谈Android之Activity生命周期
Activity作为四大组件之一,出现的频率相当高,基本上我们在android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的.今天我们就来详细地聊聊Ac ...
- 理解 Activity.runOnUiThread
在开发 Android 应用的时候我们总是要记住应用主线程. 主线程非常繁忙,因为它要处理绘制UI,响应用户的交互,默认情况下执行我们写下的大部分代码. 好的开发者知道他/她需要将重负荷的任务移除到工 ...
- Tab指示符——Indicator
先说说我们的思路吧. 其实思路也很简单,就是在咱们的导航下面画一个小矩形,不断的改变这个矩形距离左边的位置. 思路就这么简单,有了思路,接下来就是实现了,看代码: public class Indic ...
- 一个卡片式的ViewPager,带你玩转ViewPager的PageTransformer属性!
ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法.那么我今天说的是ViewPager ...
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
C# 很早就有了MVVM的开发模式,Android手机中的MVVM一直到去年Google的I\O大会上才推出,姗姗来迟.MVVM这中开发模式的优点自不必多说,可以实现视图和逻辑代码的解耦,而且,按照G ...
- 卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar
ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法.那么我今天说的是ViewPager ...
- static关键字所导致的内存泄漏问题
大家都知道内存泄漏和内存溢出是不一样的,内存泄漏所导致的越来越多的内存得不到回收的失手,最终就有可能导致内存溢出,下面说一下使用staitc属性所导致的内存泄漏的问题. 在dalvik虚拟机中,sta ...
- Android进阶系列之源码分析Activity的启动流程
美女镇楼,辟邪! 源码,是一个程序猿前进路上一个大的而又不得不去翻越障碍,我讨厌源码,看着一大堆.5000多行,要看完得啥时候去了啊.不过做安卓的总有这一天,自从踏上这条不归路,我就认命了.好吧,我慢 ...
- Activity之间传递参数(三)
------siwuxie095 传递值对象,即自定义的有数据类型的对象 1.首先 new 一个 class:User,用于创建自定义对象,同时右键 Generate 出 Constructor.se ...
随机推荐
- OpenGL基础渲染
客户端-服务器 客户端是存储在CPU存储器中的,并且在应用程序中执行(或者驱动程序),驱动程序将渲染命令和数据组合起来,发动到服务器执行.服务器和客户机在功能上是异步的,他们是各自独立的软件模块或者硬 ...
- ajax 一个 gbk 目标后内容乱码的解决方案
ajax 一个 gbk 目标后,如果内容出现乱码,说明服务器在送出内容时没有指定 charset,ajax 对于没有指定 charset 的 response 默认以 utf-8 来处理,所有出现乱码 ...
- jsp页面变量作用域问题
想实现一个注销的功能,在页面上有个注销按钮,我想一点它就注销,用了js给按钮加了onclick代码,如下 <% session = request.getSession(true); ...
- IMP导入数据 报错 IMP-00058 ORA-01691 IMP-00028
查看导入日志,发现错误如下: oracle@sspt:/back/log> cat imp.HD_HDXX.log Connected to: Oracle Database 11g Enter ...
- 7.cadence原理图后续[原创]
一.网表输出 1.自动编号 输出网表前,不能有问号 -- 效果: ---- -- 效果: 2.DRC检查 输出网表前需要DRC检查 3.网表输出 二.生成BOM表 法1: 法2: --- 点击OK: ...
- asp开发微信扫码支付
这个任务已经给了.现在正在学习开发中.主要注意的是2点. 1:返回参数的验证. 2:通知后业务处理和处理后返回财付通.大部分操作,api中已经处理好. 现在需要的业务逻辑部分. 需要正确3个参数 r ...
- fix org.openqa.selenium.NoSuchWindowException when find element on windows8.1 ie11.
Steps:1.I was able to resolve the issue after adding the site URL under trusted sites of IE. The sam ...
- HTTP头学习汇总
在开发http请求的时候,对HTTP头部信息一知半解,各种百度谷歌汇总一下学习到的资料. http简介 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于 ...
- 【笨嘴拙舌WINDOWS】键盘消息,鼠标消息
键盘消息 Windows系统无论何时只有一个窗口(可能是子窗口,也就是控件)能获得焦点. 焦点窗口通过windows消息来响应人的键盘操作,与键盘相关的常用消息罗列如下: WM_KEYDOWN 按 ...
- HDU 2126 (背包方法数) Buy the souvenirs
DP还有很长很长一段路要走.. 题意:给出n纪念品的价格和钱数m,问最多能买多少件纪念品和买这些数量的纪念品的方案数. 首先,求能买最多的纪念品的数量,用贪心法可以解决.将价钱排序,然后从最便宜的开始 ...