我有一个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想要做的完全相反的行为!