Android Activity的理解
Android Activity的理解
Activity 生命周期的四个状态
Activity的生命周期分为运行、暂停、停止、销毁四个状态。
- 运行状态:该Activity生命开始,Activity在前台展示,在屏幕上能获取焦点。
- 暂停状态:前台展示其他Activity,该Activity依然可见,在屏幕上不能获取焦点。
- 停止状态:该Activity不可见并且失去焦点。
- 销毁状态:该Activity结束生命,或此Activity所在进程被结束。
tips:焦点类似于windows里面的光标,只有能获取焦点才可以进行点击、滑动、输入等类似操作。
Activity 生命周期过程中执行的方法
Activity在生命周期的过程中,会经历onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy()七个方法。在开发过程中,可重写某些方法以达到自己的项目需求。
- onCreate(Bundle savedInstanceState)方法:其在Activity中起到创建view的作用,创建Activity时会回调此方法并只调用一次。Bundle savedInstanceState一般用于初始化数据,savedInstanceState主要用于当Activity被异常杀死的时候,用于保存数据。
- onStart():启动Activity时被回调,一般不进行任何操作。
- onRestart():重新启动Activity时被回调。
- onResume():Activity变成可见前调用,获得焦点与用户进行交流,前台状态。在onStart()后一定要回调onResume()。
- onPause():暂停Activity时回调,此时Activity可见,但是没有获得焦点,属于暂停状态,不处于栈顶当时可以看见界面。
- onStop():停止Activity时被回调,此时Activity变成完全不见,进入后台状态。
- onDestory():Activity被销毁的时候调用,该方法只会被调用一次。
Activity的代码演示生命周期变化
tips:创建项目时会自动继承AppCompatActivity,其与Activity区别在于,前者在页面左上方会有标题。也可以手动把AppCompatActivity改成Activity。
public class MainActivity extends AppCompatActivity {private static final String TAG = "--MainActivity---甘---";@Overrideprotected void onCreate(Bundle savedInstanceState) {Log.i(TAG, "-----------onCreate-------------");super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overrideprotected void onStart() {super.onStart();Log.i(TAG, "-----------onStart-------------");}@Overrideprotected void onRestart() {super.onRestart();Log.i(TAG, "-----------onRestart-------------");}@Overrideprotected void onResume() {super.onResume();Log.i(TAG, "-----------onResume-------------");}@Overrideprotected void onPause() {super.onPause();Log.i(TAG, "-----------onPause-------------");}@Overrideprotected void onStop() {super.onStop();Log.i(TAG, "-----------onStop-------------");}@Overrideprotected void onDestroy() {super.onDestroy();Log.i(TAG, "-----------onDestroy-------------");}
}
通过打Log的方式,能更加清晰动态的了解Activity的生命周期变化。
- 点击运行项目,观察到的生命周期为:onCreate()->onStart()->onResume(),如下图。
- 点击home键,观察到的生命周期为:onPause()->onStop(),如下图。
- 重新回到app中,接下来锁屏,观察到的生命周期为:onRestart()->onStart()->onResume()->onPause()->onStop(),如下图。
- 解锁,重新回到app中,接下来点击手机"back"(返回键),观察到的生命周期为:onRestart()->onStart()->onResume()->onPause()->onStop()->onDestroy(),如下图。
- 从此Activity切换至另一个Activity其生命周期的变化。在此,创建一个NextActivity.java文件,经过按钮点击事件切换至NextActivity。
public class NextActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.next);}
}
通过对点击的控件设置监听事件,通过以下代码切换Activity。
Intent intent = new Intent(view.getContext(), NextActivity.class); view.getContext().startActivity(intent);
点击MainActivity的设置监听事件的控件跳转至NextActivity,观察到MainActivity与NextActivity的生命周期的变化为:MainActivity:onPause()->NextActivity:onCreate()->NextActivity:onStart()->NextActivity:onResume()->MainActivity:onStop()
- 开发者选项 【不保留活动】开关,对activity生命周期的影响:当按home键时,相比没开【不保留活动】开关,会多经历onDestroy()的过程。即销毁了activity,重新进入时,会重新onCreate()。
总结:Activity有生命周期会经过四种状态和回调7种方法。当锁屏、按home键时,Activity保持停止状态;当按手机"back"(返回键)时,Activity便被销毁,生命周期结束。
Android Activity的理解相关推荐
- 深入理解 Android Activity的生命周期
深入理解 Android Activity的生命周期 2010-10-13 14:08:29| 分类: Android | 标签:周期 调用 activity android protec ...
- 【转】Android Activity原理以及其子类描述,androidactivity
Android Activity原理以及其子类描述,androidactivity 简介 Activity是Android应用程序组件,实现一个用户交互窗口,我们可以实现布局填充屏幕,也可以实 ...
- 对于Activity的理解
今天电脑小白来谈谈自己对于activity的理解. 主要分为以下四点 1 Activity是什么 Activity是最基本也是最常见的android基本组件之一,负责与用户交互,一个Activity通 ...
- android service交互,Android Activity与Service的交互方式
参考: http://blog.csdn.net/gebitan505/article/details/18151203 实现更新下载进度的功能 1. 通过广播交互 Server端将目前的下载进度,通 ...
- Android Activity跳转动画 - overridePendingTransition用法及原理分析
overridePendingTransition()是在Activity类中实现的一个用来实现跳转动画的方式,也是最常使用的方法. overridePendingTransition() 先看这个名 ...
- android handler的理解
android handler的理解 在看handler源码前,我一直以为google构造handler的目的是方便开发者在其他线程中 调用执行主线程的方法或者在主线程中调用执行其他线程的方法.看完源 ...
- Android回调函数理解
Android回调函数理解,比如我用一个activity去做显示下载进度的一个进度条,但是下载是另外一个B类来做的,这个时候我Activity获取下载的进度就可以提供一个回调接口,然后让下载类来回调就 ...
- Android Activity详解
创建一个Activity 创建一个activity至少需要三个文件: Java类 XML布局文件 应用的manifest文件 这三个文件关联密切,需要理解每个文件是干啥的.推荐大家使用Android ...
- Android Activity 生命周期详解及监听
前言 系列文章: Android Activity 与View 的互动思考 Android Activity 生命周期详解及监听 Android onSaveInstanceState/onResto ...
最新文章
- 用于制图、写电子邮件、创建条形码控件Aspose.Total
- 深度学习核心技术精讲100篇(十一)-Google利器超强特征提取网络(Transformer)
- ora 00900 已编译但有错误_ora-01113:文件2 需要介质恢复
- AI顶会直播丨深度学习顶级会议ICLR 2021中国预讲会明天召开,为期三天五大论坛...
- 微擎jsapi支付必须传openid怎么解决_面经腾讯微信支付面试记
- 20145233 20145228《信息安全系统设计基础》第二次实验报告
- 2020年周记(2/50)
- action在java_@Action(value=/login在java语句中是什么意思
- Python 读写文本(open)
- 收藏啦~ Github上 10 个开源免费且优秀的后台控制面板
- DevOps使用教程 华为云(18)git 把单个文件回退到某一版本
- EMS企业能源管理系统-工厂能源管控——安科瑞高逍
- Java Swing中国象棋AI(人机和人人对战)
- 界面清爽的SNS社交网络系统源码 PHP+MySQL(已整合IM聊天系统)
- 节假日查询 API数据接口
- windows下的gitbub使用入门
- 太牛逼了!从Python入门到入魔
- 柴浩然妙用三物黄芩汤
- 解析联想AI实践:数字化让CIO职责发生了变化,而我们有数据中心
- 快速实现Excel到ODX/PDX数据文件的自动转换工具:VisualODX