Android.SuperNotCalledException报错异常信息的解决方案
2016-06-05 13:34
1381 查看
总结前阵子同事遇到的问题Android.support.v4.app.SuperNotCalledException
1.分析
报错信息:java.lang.RuntimeException: Unable to destroy activity {com.hy.gjh/com.hy.gjh.ui.activity.usercenter.UsercenterEditActivity}: android.support.v4.app.SuperNotCalledException: Fragment EditMyCardFragment{5280b448 #0 id=0x7f0e0134 com.hy.gjh.ui.fragment.usercenter.editdata.EditMyCardFragment} did not call through to super.onDestroy() at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3497) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3515) ... Caused by: android.support.v4.app.SuperNotCalledException: Fragment EditMyCardFragment{5280b448 #0 id=0x7f0e0134 com.hy.gjh.ui.fragment.usercenter.editdata.EditMyCardFragment} did not call through to super.onDestroy() at android.support.v4.app.Fragment.performDestroy(Fragment.java:2204) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1196) ...
为什么会报SuperNotCalledException异常信息:
探讨:根据报错信息的提示:由于没有销毁fragment,导致activity没法销毁。扭头一看原来还真的是这样,直接贴代码 @Override public void onDestroy() { //...... } 在当前的fragment类的onDestroy方法里没有调用父类的onDestroy()方法,导致了异常的发生。正确的代码应该是: @Override public void onDestroy() { super.onDestroy(); //...... }
正常运行 …
2.总结:在fargment的生命周期方法,比如onDestroy()方法里首先调用super.onDestroy(),之后再写我们自己实现逻辑的代码,引用一篇博客的一句话:”对于这种在框架上面的编程要时刻记住是系统来调用我们的程序,当然我们也调用系统的程序,但最终还是系统框架调用我们的程序。”
相关文章推荐
- 如何开始你的安卓开发之旅
- Xamarin.Android Adapter NotifyDataSetChanged无效问题
- Android城市选着
- Android数据存储之——SharedPreferences
- Android 中使用lambda表达式
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- Android系列之Content Provider
- Android ImageView的scaleType属性
- Android 开发中 iBeacon的使用
- android蓝牙4.0(BLE)开发之ibeacon初步
- android4.4的短信发送流程
- 实习第十六天:android:oneshot
- Android_Activity(三)
- Picasso入门教程(九)回调,remoteViews,通知
- android源码解析之(十四)-->Activity启动流程
- <Android 基础(五)> MVVM
- <Android 基础(五)> MVVM
- Android键盘
- 学习Android开发-乐学成语之TabHost控件
- Android 部分文字颜色大小点击事件的处理