我有一个包含ListViews和TextViews的复杂TabActivity。而不是弄乱手动UI更新,我决定“重新创建”活动(强制完全重绘)每当涉及到前景。假设我从活动A导航到B.当回击B时,必须重新创建活动A.这是代码:
@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());
}
它有效,但我想知道我做错了什么,也许有一个更优雅的解决方案。您能为这种情况建议最佳实践吗?
答案 0 :(得分:2)
但我想知道我做错了什么
您浪费CPU时间和电池寿命。通过强制始终从头开始重新创建活动,您将使用户体验变得更糟。
您能为这种情况建议最佳做法吗?
最佳做法是执行“手动UI更新”。将您的setupTabs()
分成两部分,一部分真正创建标签(从onCreate()
调用),另一部分填写标签中小部件中的数据(从onResume()
调用)。 / p>
对于您的案例可能还有更多内容,但由于您选择不解释“手动UI更新”的难度,我无法向您提供进一步的建议。