因此,根据LogCat,我的应用程序的主要活动每次恢复时都会跳过大约200帧。 “在主线上做太多工作”。这在模拟器和我的测试设备(Moto X 2013)上都会发生,并且它是实质性的 - 我肯定能看到显着的延迟时间。因此,当我开始另一个活动然后返回主要,当我退出应用程序然后返回它,等等。主要活动包括一个滚动视图,其中包含用户点击的项目列表,以及相应的图像图标每个物品。这些元素是通过AsyncTask以编程方式插入的,但是在它们全部显示在屏幕上之后会发生延迟。
问题是,它的主要线程几乎没有做任何事情。我没有重写onResume,但即使在onCreate期间,它所做的唯一不是AsyncTasks的是这段代码:
c = this;
hallTexts = (LinearLayout) findViewById(R.id.lister);
hallImages = (LinearLayout) findViewById(R.id.symbol);
hallTexts.removeAllViews();
hallImages.removeAllViews();
final int height = ((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) HEIGHT_OF_LIST_ELEMENT, getResources().getDisplayMetrics()));
final int rulerHeight = ((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) HEIGHT_OF_HORIZONTAL_RULE, getResources().getDisplayMetrics()));
final int rulerMargin = ((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) HORIZONTAL_RULE_MARGIN, getResources().getDisplayMetrics()));
//This grabs the list elements from a Singleton class, creates textviews for them, then puts them into the activity during onPostExecute
AsyncTask1.execute();
//Same thing, but for the icons
AsyncTask2.execute();
我想发布更多代码,但是有很多代码可以用于此,我完全不知道错误在哪里。我打印调试了整个600行,几乎没有任何用处。
但是,只要应用程序恢复,并且在所有AsyncTasks完成之后(我检查过,并且在我从每个线程获得“完成”打印输出后,跳过的帧消息很长),就会出现延迟。
是否有理由这可能发生?我对android开发还很陌生,虽然我做了一个快速的辅导课程,但我大部分时间都在学习,所以我很可能在这里犯了一些菜鸟错误。