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

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

学习Android不学习生命周期估计以后也不好混,原来学习ASP.,NET的时候发现有生命周期挺蛋疼的,不过还好Android Activity的生命周期比ASP.NET应用程序生命周期相对来说好理解一点,参考了Google的API,还有中文的博客的,加上自己一点见解,初学Android,高手可以忽略我~

首先看一张很经典的图片:

 

 

Activity继承了ApplicationContext,转到定义,可以重写一下方法:

* public class Activity extends ApplicationContext { *     protected void onCreate(Bundle savedInstanceState); * *     protected void onStart(); *      *     protected void onRestart(); * *     protected void onResume(); * *     protected void onPause(); * *     protected void onStop(); * *     protected void onDestroy(); * }

 新建了一个Lifecycle项目,MainActivity中重写以上方法:

public class MainActivity extends Activity {    private static final String TAG = "com.example.lifecycle";	@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.i(TAG, "生命周期Create");    }        @Override    protected void onStart() {    	// TODO Auto-generated method stub    	super.onStart();    	Log.i(TAG, "生命周期Start");    }    @Override    protected void onResume() {    	// TODO Auto-generated method stub    	super.onResume();    	Log.i(TAG, "生命周期Resume");    }    @Override    protected void onPause() {    	// TODO Auto-generated method stub    	super.onPause();    	Log.i(TAG,"生命周期Pause");    }    @Override    protected void onStop() {    	// TODO Auto-generated method stub    	super.onStop();    	Log.i(TAG,"生命周期Stop");    }    @Override    protected void onDestroy() {    	// TODO Auto-generated method stub    	super.onDestroy();    	Log.i(TAG,"生命周期Destroy");    }    @Override    protected void onRestart() {    	// TODO Auto-generated method stub    	super.onRestart();    	Log.i(TAG,"生命周期Restart");    }    public void test(View view){    	Intent intent=new Intent(this,UserActivity.class);    	startActivity(intent);    }}

运行如下图所示:

打开执行了onCreate()->onStart()->onResume三个方法:

 

 

如果这个时候使用一下Back键,调用顺序onPause()->onStop()->onDestory():

 

Home键:

如果在使用一个Activity的时候,这个时候可能突然来了一个电话,Activity并没有销毁,只是暂停了:

如果重新按一下Home键回去之后就看了执行了onRestart()->onStart()->onResume():

 

Activity中加了一个点击事件,先设置了一下UserAcitivity: 

android:theme="@android:style/Theme.Dialog"

点击之后的效果:

这个时候看Log,UserActivity出现在Main的前面,但是Main还是可见的,所以这个时候只是执行了onPause方法,而没有执行onStop方法,onResume是一个恢复开始的动作,这时候用户界面可以点击,可以输入,进行操作,跟onPause是相对应的~

初学Android,如果不当,请多多指正~

转载地址:http://mjzix.baihongyu.com/

你可能感兴趣的文章
OTT IPTV商机广阔 运营商如何进一步发掘CDN机会窗口
查看>>
使用软件定义的架构 打好IT基础
查看>>
“数”领教育山东师范大学与新华三集团开启大数据战略合作
查看>>
当一个大数据团队加入存储公司之后会发生什么?
查看>>
攻击更多更厉害 美国将提高大银行网络安全标准
查看>>
我们为何需要安全传输层协议(TLS)
查看>>
Red Hat峰会示出Gluster&Ceph发展蓝图
查看>>
RxJava操作符系列三(上)
查看>>
石墨烯+新能源:光伏领域应用潜力巨大
查看>>
本节书摘来自华章出版社《 自动化测试最佳实践:来自全球的经典自动化测试案例解析 》一 2.2 测试中的软件...
查看>>
2022 年 AI 会发展成什么样子,IBM 做出了 5 大预测
查看>>
深入NLP———看中文分词如何影响你的生活点滴 | 硬创公开课
查看>>
老叶观点:MySQL开发规范之我见
查看>>
Silverlight 2 DispatcherTimer和通过XAML创建UI元素
查看>>
提高交通大数据利用率,改善交通拥堵现状
查看>>
美国运营商的冰火两重天
查看>>
新证据显示索尼遭黑确实是朝鲜黑客所为
查看>>
5G和物联网走到了一起 英特尔这位红娘出了多大力?
查看>>
无锡启用汽车电子标识卡,为市民带来便捷生活
查看>>
SSLyze:开源SSL安全监控工具
查看>>