Android - 用作标签的菜单项

时间:2011-02-02 20:13:15

标签: android menu android-activity

我有几个活动从基础活动继承,并带有如下菜单。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
        Intent myIntent;
        switch(item.getItemId()) {
        case R.id.home:
            myIntent = new Intent(this, HomeActivity.class);
            startActivityForResult(myIntent, 0);
            return true;
        case R.id.map:
            myIntent = new Intent(this, GoogleMapsActivity.class);
            startActivityForResult(myIntent, 0);
            return true;
        case R.id.art:
            myIntent = new Intent(this, ArtActivity.class);
            startActivityForResult(myIntent, 0);
            return true;
        ...
        default:
            return super.onOptionsItemSelected(item);
        }
    }

这很有效,但选择菜单项会启动该活动的新实例。如何将pause()和resume()与setResult()结合使用,在给定时间内每个活动只有一个或更少的实例?

为了更加具体,当用户回到之前访问过的活动时,它应该处于与离开它时相同的状态(如标签)。

2 个答案:

答案 0 :(得分:0)

您可以通过将活动的launchMode配置为singleTask来实现此目的。但是,正如文档所指出的,这可能会导致用户意外行为。当用户回击时,他们希望被带回到之前的屏幕。如果您使用此模式,请确保彻底测试后退功能。

答案 1 :(得分:0)

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP)用于您的意图,然后通过startActivity

启动“活动”