抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

2020.10 第三周目 踩坑小记

判断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条评论

发表评论