小编Bob*_*Bob的帖子

Android O:PHONE_STATE广播限制

我一直在尝试做类似于truecaller应用程序的东西,我的应用程序应该在呼叫挂断后显示一个屏幕.通过android.intent.action.PHONE_STATEmanifest文件中注册隐式广播来实现这一点.

但是,如果我将应用程序更改为目标Android O,则无法正常工作,因为Android O广播限制,我正在尝试找出此用例的替代解决方案.

替代方案建议在Android的文档:Job scheduler或注册一个servicecontext.

作业调度程序:由于Job scheduler优化,接收回调会有一些延迟.因此,如果我们的应用程序屏幕在电话呼叫后几分钟显示,并且每隔几秒检查一次新的呼叫记录就会导致电池耗尽问题,这将影响用户体验.

在Java中使用上下文注册服务:即使应用程序未处于活动状态或活动状态,我也希望该行为能够正常工作.如果系统杀死了,这将无效Service.

注册前台服务:这需要一直向用户显示通知,这将是用户的垃圾邮件,并且全天候运行服务会消耗大量资源,这会破坏广播限制的整个目的.

请建议一个替代解决方案,以便用户体验保持不变.

提前致谢

performance android android-broadcast android-broadcastreceiver android-8.0-oreo

34
推荐指数
1
解决办法
1290
查看次数

How to log inside Kotlin's filter function?

Using Kotlin to filter a list

var datalist: List<DataType>
val list = datalist.filter {it.Id == currentFilterId}
Run Code Online (Sandbox Code Playgroud)

would like to put in some log to debug the data

val list = datalist.filter {
                Log.d(TAG, "$it,  currentFilterId: $currentFilterId)
                it.postId == currentPostFilterId
            }
Run Code Online (Sandbox Code Playgroud)

how to put in multiple lines of statements inside the filter function?

android filter kotlin

2
推荐指数
1
解决办法
341
查看次数