gpt4 book ai didi

android - 如何完成当前 Activity 并启动新的 Activity 接收方式?

转载 作者:行者123 更新时间:2023-12-03 20:26:23 25 4
gpt4 key购买 nike

我想在 Rx 中执行以下操作。 startActivity(intent)保证从 finish() 开始调用只是一个排队的异步调用:

private fun launchNewActivity(){
...
finish()
startActivity(intent)
}

所以以 Rx 的方式,我正在做这样的事情,两者都打包在自己的 observables 中(要求):
private fun launchNewActivity(): Observable<Any>{
...
return Observable.concat(
Observable.just(finish())
Observable.just(startActivity(intent))
...
)
}

但是,我担心在 Rx 方式中, Activity 可能会在 startActivity 被调用之前完成。那会发生吗?

最佳答案

实际上,您以错误的顺序调用它。您应该调用 startActivity()在调用 finish() 之前先.尽管如此,将这个过程封装在一个 Observable 中可能会引入意外行为 , 因为 startActivity()应该在 UI 线程上调用,因为它会触发 UI 动画/转换到另一个 Activity。

你想要做的是调用startActivity()finish()里面 onNext()onComplete()打回来。但如果您真的需要封装它,您可以按照以下简单步骤操作:

1. 创建一个处理Activity切换的方法

private fun launchNewActivity() {
startActivity(Intent())
finish()
}

2. 将此方法封装在 Observable
Observable.fromCallable(this::launchNewActivity)

您需要将 Observable 放在 CompositeDisposable 中。或 DisposableObserver .

关于android - 如何完成当前 Activity 并启动新的 Activity 接收方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60444389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com