判断App处于前台还是后台的方案
这次要做的是,只要应用切换到后台,进入时均显示开屏广告,像淘宝那种,网上方式比较多,但最后使用的也是大家所推荐和验证最多最有效的:ActivityLifecycleCallbacks
实现思路:定义一个 num,onStart 回调时 ++,onStop 回调时–,根据生命周期,应当在 baseActivity 的 onRestart 中进行操作,判断num 是否为0,为0则应用已到后台(可自行验证并调整)。
关于在最近任务列表中隐藏Activity
一般常见的是直接从 manifest 中配置和 startActivity 时配置,只对栈内第一个 activity 配置时有效,且该栈也只需要配置一个即可。
但如果在某些情况下,需要特殊处理,也有一个办法:
fun Activity.setExcludeFromRecent(exclude: Boolean) { val am = getSystemService(Context.ACTIVITY_SERVICE) as? ActivityManager am?.also { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val tasks = am.appTasks if (tasks.isNullOrEmpty().not()) { tasks[0]?.setExcludeFromRecents(exclude) } } } }
这种在任意时刻均可,效果一样,但是可控性更高。
App bundle
这个东西,实际上就是一个 bundle_tool.jar。分离完成后,需要安装还挺麻烦:手动安装 aab
最好是都写成脚本,在 google play 上传时,还有会有些错误,比如我遇到的就是:在某个三方库中出现了一个 fb 的语言,google 无法识别。这种就比较糟糕,因为难排查,这个 fb 来自 Facebook 的早期版本库,当然这只是一种情况。
动画拓展-CircularReveal
很多 app 其实都有一个转场,圆形扩散或者收拢的效果,一直不知道名字,但最近知道了,而且还有官方文档:创建圆形揭露动画 CircularReveal
Demo 移步:简单试试:圆形揭露动画CircularReveal
其他
本周请假一天且其他为 sdk 接入任务,所以也并未遇到什么其他值得记录的事。
本站由以下主机服务商提供服务支持:
0条评论