Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在“活动”中加载巨大的XML布局,当“活动”在前面时设备被锁定和解锁时导致冻结?_Android_Android Activity_Android Xml_Activity Lifecycle - Fatal编程技术网

Android 在“活动”中加载巨大的XML布局,当“活动”在前面时设备被锁定和解锁时导致冻结?

Android 在“活动”中加载巨大的XML布局,当“活动”在前面时设备被锁定和解锁时导致冻结?,android,android-activity,android-xml,activity-lifecycle,Android,Android Activity,Android Xml,Activity Lifecycle,我加载了一个巨大的布局XML>1600行,其中有一个具有多个布局的视图翻转器。它最初是在“onCreate”时冻结的,但我改为在后台放大布局的代码,并将返回的视图传递给“onPostExecute”处的“setContentView”。这很好用 现在,当活动处于打开状态且设备锁定或屏幕关闭时,当我尝试解锁设备时,在某些设备上它会完全冻结,而在其他设备上它会显示一个对话框,说明应用程序没有响应。你想关闭它吗?具有等待和确定选项 请帮我解决这个问题 谢谢我终于明白了,是什么引起了麻烦 我在一个异步任

我加载了一个巨大的布局XML>1600行,其中有一个具有多个布局的视图翻转器。它最初是在“onCreate”时冻结的,但我改为在后台放大布局的代码,并将返回的视图传递给“onPostExecute”处的“setContentView”。这很好用

现在,当活动处于打开状态且设备锁定或屏幕关闭时,当我尝试解锁设备时,在某些设备上它会完全冻结,而在其他设备上它会显示一个对话框,说明应用程序没有响应。你想关闭它吗?具有等待和确定选项

请帮我解决这个问题


谢谢

我终于明白了,是什么引起了麻烦

我在一个异步任务中使用LayoutInflater将整个XML膨胀成一个视图,如下所示

@Override
protected View doInBackground(Void... params) {
     Looper.prepare();
     View view = getLayoutInflater().inflate(R.layout.my_large_xml, null, false);
     return view;
}

@Override
protected void onPostExecute(Void result)
{
     setContentView(view);
}
事实证明,当我们使用view对象设置内容视图时,当活动暂停时,它会冻结设备。我不知道为什么。 但是当我使用setContentViewR.layout.my_large_xml方法时,它工作得非常好。所以我放弃了在后台加载XML的想法,现在我用传统的方式在主线程上加载,因为我们不能从另一个线程调用setContentView

悲哀!这不是我想要的,因为最初调用setContentView时它会冻结应用程序,但至少现在它可以工作了


我不会放弃,继续努力。如果我找到更好的解决方案,我会更新答案:

它真的应该是一个巨大的布局XML,而不是像带ViewPager的FragmentStatePagerAdapter这样的东西吗?它会因为您的网络操作而导致问题。您的异步任务可能已冻结。它看起来像是在“onPause”冻结。有什么我能做的吗?我现在无法将布局更改为使用ViewPager。我甚至不知道这是否会有帮助。如果traceview太难运行,请优化您的xml布局,我无法相信有人可以编写1600多行长的monster布局xml文件…如果它看起来像在“onPause”冻结,onPause会是什么样子?