关于Android生命周期方法调用return的问题

问题描述

有三段代码,读者可以先想想会发生什么情况

@Overrideprotected void onResume(){    super.onResume();    return;}
@Overrideprotected void onResume(){    return;    super.onResume();}
@Overrideprotected 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时安全的

更多相关文章

  1. android颜色设使用方法
  2. android 点击返回键退出程序的方法
  3. Android studio+真机 运行报错[INSTALL_FAILED_INSUFFICIENT_STO
  4. Android——Android Studio开发环境搭建及设置本地Gradle方法
  5. 在android中创建bitmap避免内存不足的方法
  6. Android Studio使用Wifi调试的方法:使用Android WIFI ADB
  7. 【Android动态布局】之【使用addView方法时,如何保持已有动态控件
  8. Android禁止锁屏,保持常亮方法
  9. android:ClassNotFoundException for Activity class的解决方法

随机推荐

  1. android跳转其他app地图高德、百度、腾讯
  2. listView布满小图
  3. Android课程表的设计开发
  4. 【AndroidManifest.xml详解】Manifest属
  5. Android 7.1 设置默认启动桌面,并设置为主
  6. Android Studio 打Jar包和混淆代码。
  7. android目录简介
  8. Android 采用SharedPreferences读/写数据
  9. android美化短信聊天记录使得输入长短信
  10. Android上中文排序