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



我有一个ActionBar在我的Android应用程序(API级别14)。有一个home键与我的应用程序图标。在MainActivity中,我在EditText视图中编写了一个简短的文本。当我导航到PreferenceActivity图标得到一个箭头的信号,我可以导航到home Activity (MainActivity)。

  // PreferenceActivity-onCreate
  ActionBar actionBar = getActionBar();
  actionBar.setDisplayHomeAsUpEnabled(true);

点击ActionBar中的app图标返回到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);
   }
}

现在我的MainActivity再次被创建,而EditText中的文本已经消失了。我想我可以保持活的MainActivity与die Intent.FLAG_ACTIVITY_CLEAR_TOP。我想有一个行为,就像我在设备上使用我的返回按钮。

如果您想要返回到现有的MainActivity实例,您需要这样做:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

单独使用CLEAR_TOP会创建一个新的MainActivity实例

我相信这是正确的做法。https://stackoverflow.com/a/15933890/238768

使用意图。FLAG_ACTIVITY_CLEAR_TOP将导致与Gepro想要做的完全相反的行为!

最新更新