直播平台制作,Android 悬浮窗延时5秒返回APP问题

案例需求分析:在APP界面,点击Home键后,APP退出后台,同时会打开一个悬浮窗,当用户点击悬浮窗上的按键会返回APP。

出现的问题是:点击悬浮窗上的按键没有立即返回APP,而是需要延时一段时间才会启动。

解决方案就是:如果需要在手机桌面页面点击悬浮窗上的按键快速返APP内部,就需要给 APP 添加上 APP加上

android.Manifest.permission.STOP_APP_SWITCHES 权限。

AndroidManifest.xml 清单文件中添加如下权限:


<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
 

Android.mk 文件添加如下:


LOCAL_CERTIFICATE := platform
 

在谷歌的 Android API Guides 中,特意提醒开发者不要在后台启动 activity,包括在 Service 和 BroadcastReceiver 中,这样的设计是为了避免在用户毫不知情的情况下突然中断用户正在进行的工作。


http://developer.android.com/guide/practices/seamlessness.html#interrupt
 

优雅的解决方式就是 将intent用PendingIntent包裹:


Intent intent = new Intent(applicationContext, PlayActivity.class);
intent.putExtra(InteractionFmMainActivity.INFO_ID_KEY, PlayActivity.sParamsIdKey);
intent.putExtra(InteractionFmMainActivity.INFO_TYPE_KEY,PlayActivity.sParamsInfoTypeKey);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
try {
      PendingIntent pendingIntent = PendingIntent.getActivity(ApplicationGlobal.getGlobalContext(), 0, intent, 0);
                        pendingIntent.send();
     } catch (Exception e) {
                        e.printStackTrace();
     }

以上就是 直播平台制作,Android 悬浮窗延时5秒返回APP问题,更多内容欢迎关注之后的文章

直播平台制作,Android 悬浮窗延时5秒返回APP问题的更多相关文章

  1. Android悬浮窗及其拖动事件

    主页面布局很简单,只有一个RelativelyLayout <?xml version="1.0" encoding="utf-8"?> <R ...

  2. Android悬浮窗实现 使用WindowManager

    Android悬浮窗实现 使用WindowManager WindowManager介绍 通过Context.getSystemService(Context.WINDOW_SERVICE)可以获得  ...

  3. Android无需权限显示悬浮窗, 兼谈逆向分析app

    前言 最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android. ...

  4. Android 悬浮窗权限校验

    原文:Android 悬浮窗权限校验 悬浮窗权限: <uses-permission android:name="android.permission.SYSTEM_ALERT_WIN ...

  5. Android 悬浮窗、悬浮球开发

    原文:Android 悬浮窗.悬浮球开发 1.权限管理 直接看我另外一篇博客吧,传送门: https://my.oschina.net/u/1462828/blog/1933162 2.Base类Ba ...

  6. Android 悬浮窗 System Alert Window

    悬浮窗能显示在其他应用上方.桌面系统例如Windows,macOS,Ubuntu,打开的程序能以窗口形式显示在屏幕上. 受限于屏幕大小,安卓系统中主要使用多任务切换的方式和分屏的方式.视频播放,视频对 ...

  7. Android 悬浮窗权限各机型各系统适配大全

    这篇博客主要介绍的是 Android 主流各种机型和各种版本的悬浮窗权限适配,但是由于碎片化的问题,所以在适配方面也无法做到完全的主流机型适配,这个需要大家的一起努力,这个博客的名字永远都是一个将来时 ...

  8. 关于Android悬浮窗要获取按键响应的问题

    要在Android中实现顶层的窗口弹出,一般都会用WindowsManager来实现,但是几乎所有的网站资源都是说弹出的悬浮窗不用接受任何按键响应. 而问题就是,我们有时候需要他响应按键,比如电视上的 ...

  9. Android 使用WindowManager实现Android悬浮窗

    WindowManager介绍 通过Context.getSystemService(Context.WINDOW_SERVICE)可以获得 WindowManager对象. 每一个WindowMan ...

  10. Android 悬浮窗

    悬浮窗是一种比较常见的需求.例如把视频通话界面缩小成一个悬浮窗,然后用户可以在其他界面上处理事情. 本文给出一个简单的悬浮窗实现.可缩小activity和还原大小.可悬浮在其他activity上.使用 ...

随机推荐

  1. js程序

    JavaScript 程序 计算机程序是由计算机"执行"的一系列"指令". 在编程语言中,这些编程指令被称为语句. JavaScript 程序就是一系列的编程语 ...

  2. 硬件协议之i2c

    https://blog.csdn.net/ctyqy2015301200079/article/details/83830326  (此文章可能有误) 从目前来看,所有读写操作(包括ACK的读写)都 ...

  3. 利用canvas+js完成滑块验证码中canvas部分思路

    1. 最终效果 2.滑块验证码思路 大概思路:设置两个画布,一个为显示图像的canvas画布,一个为拼图的block画布,block画布拼图内容从图像画布中的一部分裁剪得到(使用clip()),通过绑 ...

  4. JZOJ 4253.QYQ在艾泽拉斯

    \(\text{Problem}\) 有向不联通图,求每个子图至多选出一条最大权值和的路径,求前 \(k+1\) 个 \(\text{Solution}\) 显然将每个子图缩点后 \(dp\),排序 ...

  5. NodeJs设置全局缓存路径 和 安装CNPM

    设置全局路径 下建立2个文件夹 如"node_global"及"node_cache" , npm config set prefix "D:\Pro ...

  6. 在vue-element-admin模板中去掉tui-editor

    先删除package.json的"tui-editor": "1.3.3",再安装依赖,不然会报错 1.修改package.json 删除包括tui-edito ...

  7. 三天吃透Redis面试八股文

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  8. MySQ安装装

    1.Linux安装 检查系统有没有之前安装过: rpm -qa | grep mysql 如果安装过卸载 rpm -e mysql // 普通删除模式 rpm -e --nodeps mysql // ...

  9. http 协议( 简单了解 )

    HTTP 请求协议 超文本传输协议,是一种用于分布式写作式和媒体信息系统的应用层协议. HTTP是万维网的数据通信的基础. HTTP协议概述 HTTP是一个客户端终端 (用户) 和服务器端 ( 网端) ...

  10. Shiro+SpringBoot前后端分离中跨域,sessionId,302问题

    1.解决跨域 @Configuration public class CorsConfig { public CorsConfiguration buildConfig() { CorsConfigu ...