Android - 单击ActionBar应用程序图标,创建新的活动实例

Gep*_*pro 5 android android-intent android-activity android-actionbar

我的Android应用程序(API级别14)中有一个ActionBar.有一个带有我的应用程序图标的主页按钮.在MainActivity中,我在EditText视图中编写了一个简短的Text.当我导航到PreferenceActivity时,图标会显示一个箭头来表示我,我可以导航到主页Activity(MainActivity).

  // PreferenceActivity-onCreate
  ActionBar actionBar = getActionBar();
  actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我在ActionBar中单击该应用程序图标以返回MainActivity

// PreferenceActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
   switch (item.getItemId()) 
   {
     case android.R.id.home:
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        return true;
     default:
        return super.onOptionsItemSelected(item);
   }
}
Run Code Online (Sandbox Code Playgroud)

现在我的MainActivity再次创建,EditText中的文本消失了.我认为我可以通过Intent.FLAG_ACTIVITY_CLEAR_TOP来保持MainActivity的活力.我希望有一种行为,比如我在设备上使用我的返回按钮.

Dav*_*ser 7

如果要返回现有实例MainActivity,则需要执行以下操作:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
Run Code Online (Sandbox Code Playgroud)

单独使用CLEAR_TOP会导致创建新实例MainActivity.