由于我们正在使用协程(使用 1.3.5),我们有很多崩溃:JobCancellationException - StandaloneCoroutine was cancelled。
我阅读了很多关于这些问题的线程,我在生产中尝试了很多解决方案,但总是发生崩溃。
在我们所有的视图模型中,我们都使用了视图模型范围,所以没关系。
但是在我们的数据层中,我们需要启动一个跟踪事件,即触发即忘任务。在第一步中,我们使用了一个GlobalScope.launch. 我认为 CancelletationException 是由于这个全局范围,所以我删除了它并使用 aSupervisorJob和 a在数据层中创建了一个扩展CoroutineExceptionHandler:
private val appScope = CoroutineScope(Dispatchers.Default + SupervisorJob())
private val coroutineExceptionHandler by lazy { CoroutineExceptionHandler { _, throwable -> logw("Error occurred inside Coroutine.", throwable) } }
fun launchOnApp(block: suspend CoroutineScope.() -> Unit) {
appScope.launch(coroutineExceptionHandler) { block() }
}
Run Code Online (Sandbox Code Playgroud)
但我总是看到这段代码崩溃。我需要使用cancelAndJoin方法吗?我可以将哪种策略与干净的建筑和这种工作一起使用?
提前致谢
我正在使用最后一个导航库(版本 2.4.0),其中包括多个带有底部导航视图的返回堆栈。
默认行为是当用户返回选项卡时保存每个返回堆栈。我想在用户离开选项卡时清除后退堆栈。
基于此带有 3 个选项卡的底部导航:
| 表1 | 表2 | 表3 |
|---|---|---|
| 屏幕A1 | 屏幕B1 | 屏幕C1 |
| 屏幕A2 | 屏幕B2 | 屏幕C2 |
从 Tab1 中,如果用户:
谢谢
android android-navigation bottomnavigationview android-bottom-nav-view android-architecture-navigation
使用我的应用程序,我有一个名为“实例”的用户属性。我至少有10个此属性值,并且可以在仪表板视图中对其进行过滤。
在Firebase通知面板中,选择我的应用程序,然后单击“ AND”将用户属性作为目标,但是该选项不可用。
我有其他带有Firebase的应用程序,并且可以正常运行,但这里没有。:(
您是否认为是因为我有多个风味应用程序(myapp.dev,myapp.prod,myapp.preprod ...)引起的?
你有个主意吗?提前致谢。
android firebase firebase-cloud-messaging firebase-analytics