1

在我的android应用程序中,我看到每当我第一次打开它时,它就会Firebase从检索卡住了一小会儿,就像 2G 互联网连接中的电影一样。我真的不喜欢这种行为而且我认为它会减少我的应用程序的用户数量。我不知道这个场景背后的确切原因但也许logcat 中的这一行喊出了那个原因BottomNavigationBarprogressBar

应用程序可能在其主线程上做了太多工作。

我想知道摆脱它的原因和解决方案。我听说过,AsyncTask但我不知道是不是这样。

4

1 回答 1

1

您正在为您的主线程做繁重的工作。这就是您的应用程序被冻结的原因。网络是一项非常繁重的工作,因此您必须在单独的线程上执行它。这就是您查看日志的原因The application may be doing too much work on its main thread。异步任务是旧的解决方案,但您可以使用它。您可以改用executors. 但是您可以将 retrofit2 用于网络请求,因为它们在内部处理线程安全。如果你使用 Kotlin,你可以使用 Coroutines。

于 2021-03-30T14:35:44.190 回答