2011-03-12 62 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更新”的难度,所以我不能进一步提醒您。

相关问题