2011-03-12 47 views
2

我有一個複雜的TabActivity,其中包含ListViews和TextViews。而不是搞亂手動用戶界面更新,我決定「重新創建」活動(強制完全重繪),只要它涉及到前景。假設我從活動A導航到B.當在B上回擊時,必須重新創建活動A.這裏是代碼:是否可以在onRestart()重新創建活動

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_search); 
    setupTabs(); 
} 

@Override 
protected void onNewIntent(Intent intent) { 
    startActivity(intent); 
    finish(); 
}  

@Override 
protected void onRestart() { 
    super.onRestart(); 
    onNewIntent(getIntent()); 
} 

它的工作原理,但我不知道如果我做錯了什麼,也許有一個更優雅的解決方案。您能否爲這種情況建議最佳實踐?

回答

2

,但我不知道我做錯了什麼

你是在浪費CPU時間和電池壽命。通過強制將活動從頭開始重新創建,從而使用戶體驗變得更糟。

您能否建議這種情況的最佳做法?

最佳做法是爲您執行「手動UI更新」。將setupTabs()分成兩部分,一部分真正創建標籤(從onCreate()中調用),另一部分填充標籤中的小部件中的數據(從onResume()中調用)。

您的情況可能還有更多,但由於您選擇不解釋「手動UI更新」的難度,所以我不能進一步提醒您。

相關問題