Android 应用程序在获取数据时行为异常
Android app behave abnormal while fetching data
在我的 android 应用程序中,我看到每当我第一次打开它时,它都会从 Firebase
加载数据,但同时如果我导航到我的 BottomNavigationBar
或尝试更改 activity 或片段,即使我在检索数据时显示的 progressBar
也会卡住一小段时间,就像 2G 互联网连接中的电影一样。我真的不喜欢这种行为而且我认为它会减少我的应用程序的用户数量。我不知道这一幕背后的确切原因但是 也许 logcat 中的这一行会大声说出那个原因
The application may be doing too much work on its main thread.
我想知道原因和摆脱它的解决方案。我听说过 AsyncTask
但我不知道是不是。
你的主线程正在做繁重的工作。这就是您的应用程序被冻结的原因。网络真的很繁重,所以你必须在单独的线程上执行它。这就是您查看日志 The application may be doing too much work on its main thread
的原因。异步任务是旧的解决方案,但您可以使用它。您可以改用 executors
。但是您可以将 retrofit2 用于网络请求,因为它们在内部处理线程安全。如果您使用的是 Kotlin,则可以使用协程。
在我的 android 应用程序中,我看到每当我第一次打开它时,它都会从 Firebase
加载数据,但同时如果我导航到我的 BottomNavigationBar
或尝试更改 activity 或片段,即使我在检索数据时显示的 progressBar
也会卡住一小段时间,就像 2G 互联网连接中的电影一样。我真的不喜欢这种行为而且我认为它会减少我的应用程序的用户数量。我不知道这一幕背后的确切原因但是 也许 logcat 中的这一行会大声说出那个原因
The application may be doing too much work on its main thread.
我想知道原因和摆脱它的解决方案。我听说过 AsyncTask
但我不知道是不是。
你的主线程正在做繁重的工作。这就是您的应用程序被冻结的原因。网络真的很繁重,所以你必须在单独的线程上执行它。这就是您查看日志 The application may be doing too much work on its main thread
的原因。异步任务是旧的解决方案,但您可以使用它。您可以改用 executors
。但是您可以将 retrofit2 用于网络请求,因为它们在内部处理线程安全。如果您使用的是 Kotlin,则可以使用协程。