Android 悬浮窗延时5秒返回APP问题
2023-09-11 14:14:54 时间
案例需求分析:在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.mk 是什么?
Android.mk 文件位于项目 jni/ 目录的子目录中,用于向构建系统描述源文件和共享库。它实际上是一个微小的 GNU makefile 片段,构建系统会将其解析一次或多次,developer开发者官网有详细介绍。
https://developer.android.com/ndk/guides/android_mk?hl=zh-cn
本文章中使用到的 LOCAL_CERTIFICATE := platform
是指在打包签名 应用时APK完成一些系统的核心功能,这种方式编译出来的APK所在进程的UID为system LOCAL。
系统中有4组key用于build阶段对apk进行签名:Media、Platform、Shared、Testkey,下篇文章来概述。
完毕
相关文章
- 又议android中的manifest清单文件
- 有了phonegap你还android吗?
- Android中如何使用多选对话框
- android自定义listview实现header悬浮框效果
- Android Studio解决unspecified on project app resolves to an APK archive which is not supported
- Android开发者指南(7) —— App Install Location
- [Android] Service全面总结
- 钉钉和抖音Android岗面筋,阿里挂了HR面,抖音通过收获Offer
- Android App调用MediaRecorder实现录音功能的实例
- 【Android笔记74】Android之文件提供者FileProvider和包管理器PackageManager
- Android 11.0 12.0无源码app修改它的icon图标
- Android 12.0 第三方无源码app根据包名默认横屏显示
- Android APP内存优化
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | x86 汇编语言分析 )
- Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)
- 【Android】android图片轮播
- Please ensure that adb is correctly located at 'D:Androidandroid-sdkplatform-toolsadb.exe' and
- Android实时打印kernel和App log(七十一)
- 一文2000字详细介绍Android APP 常见概念与 adb 命令
- :app:processDebugResources Android resource linking failed Android resource linking failed
- android studio kotlin 编译的报错提示::app:stripDebugDebugSymbols
- Android 11.0 Launcher3仿ios长按app图标实现抖动动画开始拖拽停止动画
- Android 10.0 Camera2 拍照功能默认选前摄像头