我有一个 ParentObject 的列表。对于每个 parentObject,它有 2 个 childObject。这样的形象
val listParent: MutableList<ParentObject> = mutableList()
ParentObject {
ChildOjbect1{} // object1 can not be NULL
ChildOjbect2{} // object2 can be NULL
}
Run Code Online (Sandbox Code Playgroud)
而且,我想建立一个 ChildObject 的 mutableList。
val listChild: MutableList<ChildObject> = mutableList()
list.add(parentObject.childOjbect1) // Because childObj1 can not be null
parentOjbect.childObject2?.let { child ->
list.add(child)
}
Run Code Online (Sandbox Code Playgroud)
问题:
我只需要 listChild 有 6 个项目(基本上我想将 listChild 的大小固定为 6 )
我在 Kotlin 中编码如下:
fun buildListChild(): List<ChildOjbect> {
val listChild // instance mutable listChild
forEach( parent: listParent) {
listChild.add(parent.childObject1)
parent.childOjbect2?.let …
Run Code Online (Sandbox Code Playgroud) 我对 rxJava 中 doOnSuccess 的用例感到困惑。
让我们看看代码:
情况1:
networkApi.callSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(__ -> showLog(SUCCESS))
.doOnError(__ -> showLog(ERROR))
.subscribeBy(
onSuccess = {//Do something},
onError = {//Show log here}
)
Run Code Online (Sandbox Code Playgroud)
案例2:
networkApi.callSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = {
//Do something
showLog(SUCCESS)
},
onError = {showLog(ERROR)}
)
Run Code Online (Sandbox Code Playgroud)
像往常一样,我认为案例 2 很好。
我也参考了 github 中的一些源代码,我看到有些人确实喜欢案例 1。
我试着问自己doOnSuccess
这里的用例是什么?
是否有我们需要应用doOnSuccess()
运算符的用例?
first_open
我对Firebase 中的事件感到困惑。这是文档:
文档
first_open:用户在安装或重新安装应用程序后第一次启动该应用程序。
当用户将应用程序下载到设备上时,不会触发此事件,而是在他或她第一次使用该应用程序时触发。要查看原始下载量,请查看 Google Play 开发者控制台或 iTunesConnect。
然而谷歌的一些人说: 参考这个链接
最后一个重要的区别是,当现有用户迁移到包含 Firebase 的应用程序的新版本时,他们将记录 first_open 事件。因此,即使他们不是新用户,他们也会登录first_open。
据我了解,如果我们通过 Google Play 更新应用程序,然后再次启动应用程序,first_open 会被记录吗?那是对的吗 ?
更新:
Firebase 版本
根/
classpath 'com.google.firebase:firebase-plugins:1.1.5'
Run Code Online (Sandbox Code Playgroud)
应用程序/
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation 'com.google.firebase:firebase-perf:16.2.3'
Run Code Online (Sandbox Code Playgroud) 我有 2 个活动:ActivityA 和 ActivityB。
当应用程序进入后台时,我想检测哪个 Activity 刚刚处于前台。
例如:活动 A 在前台 -> 单击主页按钮 -> 应用程序转到后台
onBackground: ActivityA
Run Code Online (Sandbox Code Playgroud)
Activity B 在前台 -> 单击主页按钮 -> 应用程序转到后台
onBackground: ActivityB
Run Code Online (Sandbox Code Playgroud)
我对 ProcessLifecycleObserver 感到困惑
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onEnterForeground() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onEnterBackground() {
}
Run Code Online (Sandbox Code Playgroud)
因为这里无法检测到哪个 Activity?
当我尝试使用ActivityLifecycleCallbacks
它的活动生命周期,而不是应用程序生命周期时,因此无法在此处检测到后台状态。
有没有人对这种情况有解决方案?
我对Google Admob有疑问(参考图书馆GoogleAdMobAdsSdk-4.1.1.jar).我的问题 :
如何将Admob作为ListView项添加到ListView中 - 每个人都知道这一点.请帮帮我...非常感谢!
我不太了解Rxjava 中下游和上游的含义。这意味着什么?它等效于subscribeOn和observableOn吗?