博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
activity生命周期
阅读量:6177 次
发布时间:2019-06-21

本文共 1742 字,大约阅读时间需要 5 分钟。

立即要去面试了,心里有点怕怕,在家把基础知识复习一遍,今天说说activity生命周期,事实上 面试也没什么人讲,也不愿意写,但还是硬着头皮写下来,新建一个android项目:activitylife,依次把生命周期方法打印分析下就哦了

package com.example.activitylife;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity {	private static final String TAG = "MainActivity";	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		Log.e(TAG,"onCreate------------>");	}	@Override	protected void onStart() {		super.onStart();		Log.e(TAG,"onStart------------>");	}	@Override	protected void onRestart() {		super.onRestart();		Log.e(TAG,"onRestart------------>");	}	@Override	protected void onResume() {		super.onResume();		Log.e(TAG,"onResume------------>");	}	@Override	protected void onPause() {		super.onPause();		Log.e(TAG,"onPause------------>");	}	@Override	protected void onStop() {		super.onStop();		Log.e(TAG,"onStop------------>");	}	@Override	protected void onDestroy() {		super.onDestroy();		Log.e(TAG,"onDestroy------------>");	}}
当项目执行的时候 log:

onStart():可见但没焦点

onResume():可见有焦点就意味着用户能够在屏幕上操作

这个时候假设屏幕被盖住了 log信息:

onPause()和onresume()方法是相对的,它是界面没有焦点了,

onStop()屏幕不可见,

可是这时候activity并没有消失,而是在任务栈中,这个时候我们把电话挂了,long信息:

我们看到这个时候并没有运行onCreate()方法。而是运行了onRestart(),onStart(),onResume(),

这个时候按后退键log信息:

仅仅有调用了onDestory()方法,activity才会消失。

那么在实际开发中怎样使用呢?

举例说明

1):记得在做项目中有一个用户剩余金额界面,由于一进来就要显示用户的剩余金额,还提供了支付宝充值功能,当用户充值成功后返回到此界面,这个剩余金额肯定是要变的,假设获取用户剩余金额的接口在onCreate()中调用,那么在充值成功后返回时,不是最新的,因此刚開始获取用户的剩余金额不能放在onCreate()方法中,就须要放在onResume()中进行,当支付宝充值成功后返回也会运行onResume()方法,这就是一个样例

2):比方当前有一个音乐播放,这个时候来了一个电话,当电话挂了以后,要从上次播放的位置进行播放,那么就要记录音乐播放到哪里,那么就要保留一个position这个时候再那保存比較好了,假设activity生命周期看懂了,就懂了,在onPause或者onStop方法都行

今天讲到此

你可能感兴趣的文章
2019年一线大厂春招:Spring面试题和答案合集(上篇)
查看>>
尚未弄懂的JS系列(未完待续)
查看>>
浅析Java NIO
查看>>
企业级 SpringBoot 教程 (一)构建第一个SpringBoot工程
查看>>
学习云计算技术前景在哪里?云计算技术发展趋势
查看>>
干货|比特币如何产生与交易
查看>>
前端处理后端接口传递过来的图片文件
查看>>
react中的可控组件与非可控组件
查看>>
回调函数
查看>>
Android基础—四大组件之Activity
查看>>
Nginx 学习笔记
查看>>
你为什么选择程序员这个职业?
查看>>
[译] 用于 iOS 的 ML Kit 教程:识别图像中的文字
查看>>
InnoDB大数据插入的优化和FULLTEXT索引性能优化的调研
查看>>
chrome 73 以及之后的版本上安装crx插件出现「程序包无效 CRX_HEADER_INVALID」的报错解决办法...
查看>>
笔试记录集
查看>>
NoSQL Manager for MongoDB破解
查看>>
ViewPager+滑动条显示
查看>>
Load和initialize方法
查看>>
js自定义Android端手势事件
查看>>