CaptureActivity中扫码会显示一个DialogFragment,显示扫码得到的操作选项 。DialogFragment中有个close按钮,点了隐藏,同时会调用handler.restartPreviewAndDecode(),使得可以重新扫码。现在遇到问题是显示了DialogFragment,点击手机返回按钮,一样会隐藏DialogFragment。但是不会调用handler.restartPreviewAndDecode()导致无法重复扫码。重写onBackPress或onKeyDown方法也不行,因为DialogFragment的隐藏是先于BackPress的。
解决方法:public class CaptureActivity extends AppCompatActivity implements DialogInterface.OnDismissListener
@Override
public void onDismiss(DialogInterface dialog) {
continuePreview();
}
重写DialogFragment :
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}
}
参考:
http://stackoverflow.com/questions/23786033/dialogfragment-and-ondismiss

DialogFragment的OnDismissListener相关推荐

  1. android fragment 弹出对话框,Android DialogFragment弹框实现

    前言: 网上说了一堆好处,我只说自己深有体会的两点吧 1.屏幕横竖屏切换的时候,弹框可以保存状态 2.可以在popwindow中使用 使用步骤 1.创建继承DialogFragment的dialogF ...

  2. Android弹窗组件工作机制之Dialog、DialogFragment(二)

    二.Dialog的消失 1.dismiss private final Runnable mDismissAction = this::dismissDialog;public void dismis ...

  3. Android编程之DialogFragment源码详解(二)

    接上篇,继续: 然后就是setShowsDialog(boolean showsDialog)方法.官方文档是这样解释的:控制DialogFragment是否是一个dislog,如果设置为false, ...

  4. Android进阶——Android弹窗组件工作机制之Dialog、DialogFragment

    前言 Android在DialogFragment推出后,就已经不推荐继续使用Dialog,可替换为DialogFragment,其实DialogFragment只不过是对增加一层看不到的Fragme ...

  5. 彻底解决系统DialogFragment泄露问题

    问题背景: 在使用DialogFragment时候,偶现出现内存泄露,如果咱们使用了leakCanary就会报如下错误: androidx.fragment.ap p.DialogFragment$2 ...

  6. DialogFragment 的使用

    为什么要使用DialogFragment ? 不知道大家有没有这个需求就是当手机屏幕旋转的时候弹框不消失 如果弹框使用AlertDialog 这个时候手机屏幕旋转 弹框会消失的,也就是这个原因自己才把 ...

  7. LDialog基于DialogFragment封装的库,也许是一个Nice的库

    先放上地址GitHub,欢迎star,也欢迎给我发issues LDialog 一个基于Google推荐的DialogFragment封装的的库,根据自身业务提取封装,本库全部使用kotlin编写,j ...

  8. Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题

    Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题 参考文章: (1)Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题 ...

  9. Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法

    Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...

  10. DialogFragment源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 目录介绍 1.最简单的使用方法 1.1 官方建议 1.2 最简单的使用方法 1.3 DialogFragment做屏幕适配 2 ...

最新文章

  1. 查看存储过程死锁的存储过程
  2. React+TypeScript练手小项目
  3. nodejs中的异步流程序控制nsync
  4. 靶场练习第二十五天~vulnhub靶场之Raven-2
  5. iOS追踪设备和用户
  6. 延展公司受邀参加圣象集团信息化建设年度总结会议
  7. 学习用Python编程时要避免的3个错误
  8. Bailian2743 字符串判等【字符串】
  9. java中 CopyOnWriteArrayList 的使用
  10. 如何使用imp导入dmp文件
  11. stack的常见用法
  12. 布尔逻辑代数化简公式
  13. w3school中文离线手册
  14. 关于兔子吃萝卜问题,走一步吃个萝卜。
  15. python -使用pytesseract识别文字时遇到的问题
  16. Promise学习:基础入门
  17. 电商维权,维权方法汇总【超全】
  18. 高校学籍管理系统 _数据库系统概论课程设计
  19. 推荐一款可快速全量交付 Kubernetes 集群分布式应用的神器 Sealer
  20. 外部接口调用失败重试

热门文章

  1. PTA每日一题-Python-人民币与美元汇率兑换程序
  2. 714. 买卖股票的最佳时机含手续费
  3. Selenium如何使用句柄方式切换窗口?
  4. 安卓神器-kiwi browser
  5. 【数字图像处理】Canny边缘检测C语言实现
  6. chm文件导入java_Java CHM格式的API帮助文档的制作详解
  7. 命令行操作时提示“请求的操作需要提升作为管理员运行。”解决办法
  8. android hidl简单实例1
  9. 分号的html文本,html分号
  10. Koo叔说Shader-CG语言介绍