小编use*_*346的帖子

JobCancellationException StandaloneCoroutine 被取消

由于我们正在使用协程(使用 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方法吗?我可以将哪种策略与干净的建筑和这种工作一起使用?

提前致谢

exception coroutine kotlin kotlin-coroutines

15
推荐指数
1
解决办法
2225
查看次数

Android 离开项目选项卡时清除后退栈 BottomNavigation

我正在使用最后一个导航库(版本 2.4.0),其中包括多个带有底部导航视图的返回堆栈。

默认行为是当用户返回选项卡时保存每个返回堆栈。我想在用户离开选项卡时清除后退堆栈。

基于此带有 3 个选项卡的底部导航:

表1 表2 表3
屏幕A1 屏幕B1 屏幕C1
屏幕A2 屏幕B2 屏幕C2

从 Tab1 中,如果用户:

  • 转到屏幕A2
  • 单击 Tab2(显示 ScreenB1)
  • 返回选项卡1
  • 这里我想要 ScreenA1 而不是 ScreenA2 (导航库的默认行为)

谢谢

android android-navigation bottomnavigationview android-bottom-nav-view android-architecture-navigation

9
推荐指数
2
解决办法
1821
查看次数

用户属性不可用于通知

使用我的应用程序,我有一个名为“实例”的用户属性。我至少有10个此属性值,并且可以在仪表板视图中对其进行过滤。

在此处输入图片说明

在Firebase通知面板中,选择我的应用程序,然后单击“ AND”将用户属性作为目标,但是该选项不可用。

在此处输入图片说明

我有其他带有Firebase的应用程序,并且可以正常运行,但这里没有。:(

您是否认为是因为我有多个风味应用程序(myapp.dev,myapp.prod,myapp.preprod ...)引起的?

你有个主意吗?提前致谢。

android firebase firebase-cloud-messaging firebase-analytics

5
推荐指数
1
解决办法
391
查看次数