ProgressDialog或ProgressBar减慢了运行Android 4.1的应用程序的速度

ProgressDialog或ProgressBar减慢了运行Android 4.1的应用程序的速度,第1张

概述我正在开发一个Android应用程序,我在其中使用AsyncTask从使用JSON的Web服务获取信息,然后将其加载到ListView中.直到这里一切正常.我使用了一个在onPreExecute()方法中启动的ProgressDialog,并在onPostExecute()方法中被解雇.在运行2.3.3 android版本的模拟器中,所有这些 *** 作最多需要7/

我正在开发一个Android应用程序,我在其中使用AsyncTask从使用JsON的Web服务获取信息,然后将其加载到ListVIEw中.直到这里一切正常.

我使用了一个在onPreExecute()方法中启动的ProgressDialog,并在onPostExecute()方法中被解雇.在运行2.3.3 androID版本的模拟器中,所有这些 *** 作最多需要7/8秒.我已经使用运行2.3.6的真实设备进行了测试,该应用程序具有相同的行为.

但是,当我使用运行4.1 androID版本的模拟器时,此 *** 作需要65到70秒.当我删除ProgressDialog时,AndroID 2.3和4.1版本的 *** 作需要7/8秒.我已多次测试所有这些场景.

为什么会这样?我没有4.1 androID版本的任何真实设备来测试它所以我想知道这是否是一个模拟器问题?我试图使用正常的进度条圈,而不是ProgressDialog,但同样的事情发生,它只需要在AndroID 4.1版本中花费太长时间.

任何想法可能是这种奇怪行为的原因? :S

谢谢.

dmon和James McCracken这里是我活动的代码,你可以帮我吗?

public class MainActivity extends Activity {private TextVIEw tvTitleList;private ListVIEw lvDataSearch;private ProgressDialog dialog;private long timeStart;private String[] dataSearch;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    tvTitleList = (TextVIEw) findVIEwByID(R.ID.tvTitleList);    lvDataSearch = (ListVIEw) findVIEwByID(R.ID.lvDataSearch);}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {    getMenuInflater().inflate(R.menu.activity_main,menu);    return true;}public class ProcessUpdateList extends AsyncTask
最佳答案我只能在模拟器中确认相同的行为,在4.1上进行测试.在我的实际设备(galaxy S3 – 4.1)上,这不会发生.而且,它似乎只发生在不确定的进度条上.我不知道为什么会发生这种情况,但也许你会感觉更好,因为知道其他人会发生这种情况.我正在执行与您几乎相同的 *** 作,连接到Web服务,解析xml响应,然后显示解析的响应.仅供参考,我使用Progressbar作为ListVIEw的androID:empty函数.

编辑:跑一些测试

我测试了解析xml文件和布局中的Progressbar我得到了这个:

解析时间:94785毫秒

所以,我改变了这一点

对此

 

并获得此解析时间:2642毫秒

注意:我的Progressbar和ListVIEw位于linearLayout中,所有解析都在AsyncTask中完成.这一切都在模拟器上.真奇怪……我的猜测是模拟器实际上并没有将线程与UI分开,因此AsyncTask和Progressbar旋转正在争夺cpu周期,而在实际的手机中它按预期运行,因为它没有被模拟.

编辑:因此,在我的WinXP上观看TaskManager之后,模拟器以7个线程运行开始.我启动我的应用程序,使用AsyncTask.THREAD_POol_EXECUTOR运行几个AsyncTask,并且在整个过程中线程计数永远不会从7(在任务管理器中)更改.

总结

以上是内存溢出为你收集整理的ProgressDialog或ProgressBar减慢了运行Android 4.1的应用程序的速度全部内容,希望文章能够帮你解决ProgressDialog或ProgressBar减慢了运行Android 4.1的应用程序的速度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1140150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)