是否再次创建活动而不是从堆栈中恢复和使用实例?

时间:2013-01-29 08:07:06

标签: android android-intent android-activity

我有一个带有几个活动的Android应用程序。每个活动都有动作栏中的应用程序图标,帮助用户直接返回主活动而不是按回按钮。我的问题是当我使用图标启动我的时候home活​​动它不使用堆栈中的前一个实例并再次开始创建它。

我的操作栏应用图标代码为:

  

startActivity(new Intent(this,DashBoard.class)                     .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

上面的代码启动Dashboard活动并调用它的onCreate()和onResume()。但如果我使用后退按钮从任何活动返回此活动,它只调用onResume()。

清单文件中的活动定义:

    <activity
        android:name=".DashBoard"
        android:configChanges="keyboardHidden"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
    </activity>

为什么会发生这种情况?我是否遗漏了一些东西以防止它再次无法创建?请帮助

由于

2 个答案:

答案 0 :(得分:2)

使用setFlags()代替addFlags()。你走在正确的轨道上。使用以下代码。

Intent intent = new Intent(this, DashBoard.class);    
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

答案 1 :(得分:0)

删除FLAG_ACTIVITY_CLEAR_TOP。

相关问题