我有一个带有几个活动的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>
为什么会发生这种情况?我是否遗漏了一些东西以防止它再次无法创建?请帮助
由于
答案 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。