3

我有一个包含 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());
}

它有效,但我想知道我是否做错了什么,也许有一个更优雅的解决方案。您能否建议这种情况的最佳实践?

4

1 回答 1

2

但我想知道我是不是做错了什么

您正在浪费 CPU 时间和电池寿命。通过强制始终从头开始重新创建活动,您正在使用户体验变得更糟。

您能否建议这种情况的最佳实践?

最佳做法是让您执行“手动 UI 更新”。将您setupTabs()分成两部分,一部分真正创建选项卡(称为 from onCreate()),另一部分在选项卡中的小部件中填充数据(称为 from onResume())。

对于您的情况,可能还有更多内容,但由于您选择不解释“手动 UI 更新”有什么困难,我真的无法进一步建议您。

于 2011-03-12T17:29:10.790 回答