Android开发案例手册Application跳出dialog

 更新时间:2022年06月08日 17:08:42   作者:芝麻粒儿  
这篇文章主要为大家介绍了Android开发案例手册Application跳出dialog,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

👉实践过程

😜场景还原

线程中监测和硬件的连接,在任何断开的话需要弹出框给用户选择是否重新连接。

所以我们的思路就是不使用依托于Activity的Dialog,而是使用依托于Aplication的Dialog。

😜开始

首先是动态申请权限

<!--这行代码必须存在,否则点击不了系统设置中的按钮-->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>  
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />

用户不同意?那就用不了App就行了,我们一般都是如果没给权限直接退出应用。

现在哪个App不是必须要权限,看似允许用户自主同意,但哪个不是拒绝后无法使用功能。

所以不用太纠结。

接着在硬件设备断开连接的回调中处理

//设备断开连接的回调  isAutoConnectDlg是个dialog弹框

override fun onClientRemove(address: String?, alias: String?) {
    //禁止外部点击取消
    isAutoConnectDlg!!.setCanceledOnTouchOutside(false)
    isAutoConnectDlg!!.setCancelable(false)
    dlgWindows.setWindowAnimations(R.style.DialogRight)
    //重要 设置弹框类型
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        dlgWindows.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY)
    } else {
        dlgWindows.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
    }
    dlgWindows.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
    isAutoConnectDlg!!.show()
}

之后在连接成功的回调中取消该弹框即可。

至此基本就可以了。但是还有个特殊情况,就是弹出框后用户按下了Home也就是回到了桌面,或者是Android的后台杀进程界面 都会造成该弹框显示,影响不太好。

这时候就需要我们自定义Application,然后实现ActivityLifecycleCallbacks接口即可,该接口在Android 4.0 就已经退出了,注册后,所有的Activity生命周期都会回调,方便监听处理业务。

因为进入后台页面,Activity的pause和stop这些就会执行,我们每个Activity去监听不太合适,所以ActivityLifecycleCallbacks是很好的选择。

class MyApp : Application(), Application.ActivityLifecycleCallbacks {
    override fun onCreate() {
        super.onCreate()
        registerActivityLifecycleCallbacks(this)
    }
    override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
        TODO("Not yet implemented")
    }
    override fun onActivityStarted(activity: Activity) {
        TODO("Not yet implemented")
    }
    override fun onActivityResumed(activity: Activity) {
        TODO("Not yet implemented")
    }
    override fun onActivityPaused(activity: Activity) {
        //在这进行弹框处理
    }
    override fun onActivityStopped(activity: Activity) {
        //在这进行弹框处理
    }
    override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
        TODO("Not yet implemented")
    }
    override fun onActivityDestroyed(activity: Activity) {
        TODO("Not yet implemented")
    }
}

😜可能会遇见的bug

permission denied for window type 2003

就是没有动态申请权限导致的问题。

以上就是Android开发案例手册Application跳出dialog的详细内容,更多关于Android开发Application跳出dialog的资料请关注脚本之家其它相关文章!

相关文章

  • Android隐私弹框功能的实现

    Android隐私弹框功能的实现

    最近做app类的项目,现在发布app都需要在发布前生成一个用户隐私弹框让用户点击,这个功能看似简单,到底怎么实现的呢?下面小编给大家带来了Android隐私弹框功能的实现代码,一起看看吧
    2021-10-10
  • Android GPS获取当前经纬度坐标

    Android GPS获取当前经纬度坐标

    这篇文章主要为大家详细介绍了Android GPS获取当前经纬度坐标,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Flutter投票组件使用方法详解

    Flutter投票组件使用方法详解

    这篇文章主要为大家详细介绍了Flutter投票组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • AndroidStudio实现微信界面设计

    AndroidStudio实现微信界面设计

    这篇文章带你通过Androidstudio来实现微信的基础界面,微信的界面主要包含了主页、通讯录、发现以及我的账号功能区,下文包含了整个开发过程,以及解决该问题的过程及思路并提供了源码
    2021-10-10
  • Android音视频之视频采集(系统API预览)

    Android音视频之视频采集(系统API预览)

    这篇文章主要为大家详细介绍了Android音视频之视频采集,系统API预览,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • android实现滑动标签页效果的代码解析

    android实现滑动标签页效果的代码解析

    这篇文章主要介绍了android实现滑动标签页效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android编程程序实现一键锁屏的方法讲解

    Android编程程序实现一键锁屏的方法讲解

    今天小编就为大家分享一篇关于Android编程程序实现一键锁屏的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Android string.xml中的替换方法

    Android string.xml中的替换方法

    这篇文章主要介绍了Android string.xml中的替换方法,结合实例形式简单分析了string.xml中变量替换的相关技巧,需要的朋友可以参考下
    2016-01-01
  • android里TextView加下划线的几种方法总结

    android里TextView加下划线的几种方法总结

    下面小编就为大家带来一篇android里TextView加下划线的几种方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • Kotlin实现在类里面创建main函数

    Kotlin实现在类里面创建main函数

    这篇文章主要介绍了Kotlin实现在类里面创建main函数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论