当前位置: 首页 > 知识库问答 >
问题:

Android应用程序在获取数据时行为异常

有耀
2023-03-14

在我的android应用程序中,我看到每当我第一次打开它,它就会从firebase加载数据,但同时如果我导航到我的bottomnavigationbar或试图更改activity或片段,即使是我在检索数据时显示的progressbar也会像2G互联网连接中的电影一样,有一小会儿会卡住。我真的不喜欢这种行为,我认为这会减少我的应用程序的用户数量。我不知道这一幕背后的确切原因,但也许logcat中的这句台词喊出了这个原因

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

我想知道原因和摆脱它的解决办法。我听说过asynctask,但我不知道它是不是。

共有1个答案

钱志
2023-03-14

你在做你的重活,你的主线。这就是您的应用程序被冻结的原因。网络是一项非常繁重的工作,所以您必须在单独的线程上执行它。这就是为什么您要查看日志应用程序可能在其主线程上做了太多工作的原因。异步任务是旧的解决方案,但您可以使用它。您可以改用executors。但是您可以将reverfit2用于网络请求,因为它们在内部处理线程安全。如果您使用Kotlin,您可以使用Coroutines。

 类似资料:
  • 很抱歉,我可以提前找到一个更好的题目。我在这里解释一下。 我正在用启动一个activity,现在用户执行了一些任务,结果数据生成了,用户决定关闭应用程序,而不是按下后退按钮。现在我如何获取结果数据,因为当用户关闭应用程序时,没有调用,并且我无法将结果数据保存到数据库。 如果你能给我提供示例代码或者只是Expalanation就好了。

  • 这是我的应用程序类: 包com.example.myapp 这就是我得到的错误。它在应用程序类的最后一行FirebaseFireStore.getInstance()上失败了,说它没有初始化,但您可以在上面看到我正在初始化它?

  • 我试图创建一个Android应用程序使用PHP和json远程服务器上的数据库。我运行的查询假设返回一行作为答案,似乎有一个问题,因为json数组总是返回空。这是我的JSON类代码: 我就是这样使用这个类的:EditText userNam=(EditText)findviewbyd(R.id.userNamTxt);EditText pass=(EditText)findViewById(R.id

  • 升级到最新的android studio(从3.3.1升级到3.3.2)后,我在运行应用程序时出现以下错误: 我尝试过的事情: 1) 无效缓存/重新启动2)已清理项目3)重建项目(成功) 但是我的问题仍然没有解决。我不知道是什么类型的错误。如果没有,请告诉,如何将我的Android Studio降级到以前的版本。 我的项目级成绩文件:

  • 本文向大家介绍实时获取股票数据的android app应用程序源码分享,包括了实时获取股票数据的android app应用程序源码分享的使用技巧和注意事项,需要的朋友参考一下 最近学习Android应用开发,不知道写一个什么样的程序来练练手,正好最近股票很火,就一个App来实时获取股票数据,取名为Mystock。使用开发工具Android Studio,需要从Android官网下载,下载地址:ht

  • 在我的Android应用程序中,我正在异步任务中抓取一些数据。它工作正常,Jsoup可以正确地检索整个文档。但是,当我在Java控制台应用程序中运行相同的Jsoup代码时,它会连接到ESPN网站,但无法获取整个文档,因为对象始终为空(大小始终为0)。由于某些原因,在控制台应用程序上,代码