Fragmenttabhost性能很慢?

我已经使用FragmentTabHostv4 support lib

要求是,当我切换到另一个另一个,这是调用

onCreateView()&onActivityCreated()每次。

这就是为什么我的代码性能很慢。

那么,还有其他解决scheme吗 如何提高片段选项卡中的性能?

Solutions Collecting From Web of "Fragmenttabhost性能很慢?"

听起来像一个devise的气味。

重新devise你的代码,以便繁重的工作是asynchronous完成的。 碎片应该能够快速build成。 如果为了使片段显示有用的信息而需要做大量的处理,那么应该在创build片段之后事先或者asynchronous地完成该工作,并且在工作完成时应该通知片段来更新其内容。

你应该关心的第一件事是关于计算/加载一大组数据应该放在不同于主UI线程的工作线程上。 最好的select(在我看来)是使用AsyncTask 。 你可以在你的Fragment中使用这样的东西:

 private class LoadData extends AsyncTask<Void, Void, Void>{ @Override protected void onPreExecute(){ super.onPreExecute(); // this is the place where you can show // progressbar for example to indicate the user // that there is something which is happening/loading in the background } @Override protected void doInBackground(Void... params){ // that's the place where you should do // 'the heavy' process which should run on background thread } @Override protected void onPostExecute(Void result){ super.onPostExecute(); // you should update your UI here. // For example set your listview's adapter // changes button states, set text to textview and etc. } } 

这是你可以使你的标签工作更快的方式。希望这会帮助你! :)

我find了一个解决scheme。 我在创build时插入了所有的web服务和数据库事务代码。 因为在每一次不打电话的时候直到打不了电话。 &另一个解决scheme也可以使用我们可以使用

fragment.show();

&fragment.hide(); 方法

作为Android开发者的补充:如果您已经在使用AsyncTask,请记住,即使您使用多个AsyncTask,它们也会在后台执行,但都是按顺序执行的! 如果你想要更多的线程来处理你的任务,看看这个post,这完全解释了如何实现! 同时运行多个AsyncTasks – 不可能?