关于Android生命周期方法调用return的问题
2015-11-18 12:00
609 查看
关于Android生命周期方法调用return的问题
问题描述
有三段代码,读者可以先想想会发生什么情况@Override protected void onResume(){ super.onResume(); return; }
@Override protected void onResume(){ return; super.onResume(); }
@Override protected void onResume(){ }
问题解析
第一种情况
这是正常的情况,调用完super.onResume方法后可以根据需求在生命周期方法适当的地方return。第二种情况
首先这里会有两个错误,一个是不可达语句的我问题,这个在编译的时候就会报出来,删除return使super可达则可以安全运行。第三种情况
在编译的时候会提示用户这个方法应该调用super.onResuem(),但是不影响编译,而运行时则会抛出异常android.util.SuperNotCalledException。总结一下
有时候根据需求我们会在生命周期方法中使用return,如上所述,只要调用了super对应的方法如super.onStart(),super.onResume()且这些super方法可达,那么再使用return是没有影响的,程序可以正常运行。如@Override protected void onStart(){ super.onStart(); if(imageView == null) return; } @Override protected void onResume(){ super.onResume(); }
onStart调用的return此时不会影响onResume的调用的,此时使用return时安全的
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories