关于DialogFragment 的 getActivity() 方法为空值的问题
最近在浏览项目里 Umeng 统计的崩溃日志时,发现一个空指针异常:
java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.fragment.app.FragmentManager androidx.fragment.app.FragmentActivity.getSupportFragmentManager()' on a null object reference
at com.yhmedia.uking.dialog.PayVipDialog.paySuccess(PayVipDialog.java:90)
at com.yhmedia.uking.util.PayUtil.reportPaySuccess(PayUtil.java:239)
at com.yhmedia.uking.util.PayUtil.onPaySuccess(PayUtil.java:229)
at com.yhmedia.google_pay_library.GPayUtil.postPayStateEvent(GPayUtil.java:384)
溯源发现是异步的问题,dialog 依存的 activity 销毁导致上下文不存在
/**
* 防止因 getactivity 为空崩溃
*
* @return
*/
protected FragmentActivity getActivityNonNull() {
if (super.getActivity() != null) {
return super.getActivity();
} else {
throw new RuntimeException("null returned from getActivity()");
}
}
对 getActivity 做了二次判断防止崩溃,更深的原因没有探究,如果有大神了解还请指正。
关于DialogFragment 的 getActivity() 方法为空值的问题相关推荐
- getcontext方法 getactivity方法的区别
MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身.因为MainActivity继承Activit ...
- Python-pandas的fillna()方法-填充空值
0.摘要 pandas中fillna()方法,能够使用指定的方法填充NA/NaN值. 1.函数详解 函数形式:fillna(value=None, method=None, axis=None, in ...
- pandas的fillna()方法-填充空值
pandas中fillna()方法,能够使用指定的方法填充NA/NaN值. https://blog.csdn.net/qq_17753903/article/details/89892631
- android dialogfragment 简单,使用DialogFragment
DialogFragment是Android3.0后引入的Fragment框架中的对传统Dialog效果用Fragment做的实现.android-support-v4兼容包中也包含了该类,所以我们可 ...
- Android - 返回上一个界面finish()方法
返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...
- Android DialogFragment
In this tutorial, we'll be discussing what are DialogFragments. We'll see how they are different fro ...
- android重写finish方法,Android - 返回上一个界面finish()方法
返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...
- 以回调形式使用startActivityForResult方法,并解决Activity被回收的问题
前言 之前写过一篇文章写一个逻辑清晰的startActivityForResult(),拒绝来回扒拉代码,写了使用回调形式使用startActivityForResult方法,配合Kotlin的语法, ...
- python填充空值_Python机器学习(九十一)Pandas 填充(Imputation)空值
除了删除空值,还有一种处理空值的方法是填充(Imputation). 让我们看看在revenue_millions列中填充缺失的值. 首先,将该列提取到变量中: revenue = movies_df ...
最新文章
- Opencv 数学基础--范数(17)
- hbase1.1.1 连接集群_除了HAProxy,RabbitMQ集群还可以这样用
- oracle 入参含多个值,oracle几个检查点参数的含义与区别
- 5 款阿里常用代码检测工具,免费用!
- ABBYY FineReader 12中怎样禁用自动处理
- PHP的xdebug五个按钮的说明
- MOCTF-Web-机器蛇
- css3正方体选中父层 子层解体_CSS3 :nth-child(n)选择器 匹配属于其父元素的第N个子元素...
- navicat怎么查看数据库的url_连接数据库url怎么写
- python操作腾讯文档_python查看文档
- Git小乌龟的安装及简单使用
- 百度文库需要使用下载券的文档怎么下载
- Word 里面如何设置多级标题
- 运动控制卡,越来越简单了
- Win10中实时网速显示
- 泰国旅游必拍照打卡景点推荐,高清靓图欣赏
- 《Python深度学习》第一章笔记
- 解决邮件客户端QQ Mail及Thunderbird无法登入Outlook的问题
- 如何实现双因素认证?
- php 内核 字符串 比较,PHP内核探索之变量- 不平凡的字符串
热门文章
- IEEE会议论文提交时 遇到:“Font Helvetica is not embedded”解决方法
- 持续更新 BUUCTF——PWN(三)
- [官方教程] 暗黑世界 客户端 配置文档
- GLSL —— 三种变量类型(uniform,attribute和varying)
- javascript的有限状态机
- vue3+ts - 折线图和柱状图综合使用
- 微信打赏功能暗示内容付费时代渐近
- 一篇搞懂cache的命中率
- 区块链人的战“疫”工作:风险和机遇并存
- 【计算机毕业设计】049在线教育系统设计与实现