我使用v4 support lib
爲FragmentTabHost
Fragmenttabhost性能很慢?
的要求是,當我切換標籤彼此&另外一個,那就是呼籲
onCreateView()& onActivityCreated()每次。
這就是爲什麼我的代碼性能很慢。
那麼,還有其他解決方案嗎?如何提高片段選項卡的性能?
我使用v4 support lib
爲FragmentTabHost
Fragmenttabhost性能很慢?
的要求是,當我切換標籤彼此&另外一個,那就是呼籲
onCreateView()& onActivityCreated()每次。
這就是爲什麼我的代碼性能很慢。
那麼,還有其他解決方案嗎?如何提高片段選項卡的性能?
我找到了解決方案。我在創建時插入了所有websevices &數據庫事務代碼。因爲在每次不召喚時都會打電話給ondestroy不打電話。 &另一個解決方案也可用我們可以使用
fragment.show();
& fragment.hide();方法
聽起來像你有正確的想法。但是,最終目標是碎片不應該與他們的活動交談來檢索數據。他們應該被賦予必要的所有資源引用自己獲取他們的數據。畢竟這是碎片的重點。活動僅僅是負責初始化和導航的容器。 – dcow 2013-04-26 20:09:42
@saunik唱:你可以告訴我必須使用fragment.show()和fragment.hide()。我必須重寫onTabChanged函數? – 2014-07-24 13:04:52
聽起來像設計的氣味。
重新設計您的代碼,以便繁重的工作異步完成。應該能夠快速構建碎片。如果爲了使片段顯示有用的信息而需要做大量的處理,那麼應該在創建片段之後事先或者異步地完成該工作,並且在工作完成時應該通知片段來更新其內容。
同意。如果'onCreateView()'或'onActivityCreated()'花費了幾個毫秒的時間,那麼你做錯了。確切的原因確實是 – CommonsWare 2013-04-21 13:40:35
! – 2013-04-22 08:52:16
你應該關心的第一件事是關於計算/加載一大組數據應該放在與主UI線程不同的工作線程上。最好的選擇(我認爲)是使用AsyncTask
。您可以使用這樣的事情在你的片段:
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.
}
}
這是你可以讓你的標籤的工作faster.Hope這將幫助你的方式! :)
作爲Android開發者的補充:如果您已經在使用AsyncTask,請記住,即使您使用多個AsyncTask,它們也會在後臺執行,但都是按順序執行!如果你想要更多的線程來處理你的任務,看看這個帖子,這完全解釋瞭如何實現! Running multiple AsyncTasks at the same time -- not possible?
這取決於您正在運行的版本和設備硬件。異步任務在線程池中執行,其中簡單情況是1個工作線程的池。這也是該框架某些版本的默認值。 – dcow 2013-12-02 20:57:17
你可以從'onCreateView()'和'onActivityCreated()'發佈代碼嗎? – Darwind 2013-04-18 17:33:50
你在片段中嘗試過setRetainInstance(true)嗎? – Greensy 2013-04-24 15:16:00