【问题标题】:Application skipping frames应用程序跳帧
【发布时间】:2018-06-22 07:21:09
【问题描述】:


我有一个导航抽屉 Activity,我在其中使用 ViewPager 制作了 3 个片段。每个片段都有一个编辑文本、图像按钮和 RecyclerView。 RecyclerView 正在从本地 SQLite 数据库获取数据。

打开应用程序时,我收到一条日志跟踪,表明应用程序跳过了 XX 帧。 (通常 30-50 帧)。正常吗?

如果没有,那我该怎么办?可以使用 AsyncTask 之类的后台线程制作片段吗?还是应该在后台线程中填充 RecyclerView?

【问题讨论】:

  • 你在主线程上使用 SQLite 吗?
  • 使用LoaderManager加载内容
  • 应用程序在主线程中做了太多的工作。将 DB 操作和其他代价高昂的操作移至后台线程
  • @ZUNJAE 是的,我是。
  • @SarathKn 后台线程,比如 AsyncTask 还是还有其他的?

标签: java android android-fragments android-recyclerview navigation-drawer


【解决方案1】:

正常吗?

不。如果您想了解幕后发生的事情,请查看Choreographer(从第 619 行开始)。

我该怎么办?可以使用 AsyncTask 之类的后台线程制作片段吗?

您不能在后台线程上使用Views 做任何事情,因为这会导致CalledFromWrongThreadException,但您绝对可以而且应该做的是移动所有性能密集型操作,例如数据库读/写 到工作线程。查看“Android 开发者基础课程”中的AsyncTask and AsyncTaskLoader 章节,它将为您提供后台处理的良好开端。

另请注意,支持库中的LoaderManager已被弃用。

【讨论】:

    猜你喜欢
    • 2015-02-19
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    相关资源
    最近更新 更多