我的MainActivity里面有mapFragment。我有设置按钮,可以通过设置启动新活动。以下代码启动它
@Override
public void onClick(View v) {
if(v == findViewById(R.id.btnSettings)){
Intent AlarmPreferencesActivityIntent;
AlarmPreferencesActivityIntent = new Intent(App.getContext(), AlarmPreferencesActivity.class);
AlarmPreferencesActivityIntent.putExtra("alarm", alarm);
App.getContext().startActivity(AlarmPreferencesActivityIntent);
}
}
宣言活动宣言
<activity
android:name=".Preferences.AlarmPreferencesActivity"
android:label="@string/title_activity_alarm_preference"
android:parentActivityName=".MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.geoalarm.MainActivity" />
</activity>
该设置活动在菜单中有自动生成的后退按钮(您可以在屏幕截图中看到)。
问题是,当我按下该按钮时,它不会将我返回到MainActivity,而是再次创建它。当我在设置活动中按下后退按钮时,触发MainActivity的方法onDestroy。我可以通过单击在开始设置活动之前创建的后退按钮来获取MainActivity吗?
答案 0 :(得分:1)
我刚刚回忆起我的一个应用程序中存在类似的问题,
我在我的设置活动中使用了此代码,该活动扩展了PreferenceActivity 并实现Preference.OnPreferenceChangeListener
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public Intent getParentActivityIntent() {
return super.getParentActivityIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
请将此添加到您的清单
<activity android:name=".SettingsActivity"
android:label="@string/title_activity_setting"
android:parentActivityName=".MainActivity"
android:theme="@style/SettingsTheme">>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.package.MainActivity" />
</activity>
选择的选项只是我创建了一个设置活动的意图并使用它。
这适用于我的情况。希望这会对你有所帮助。
答案 1 :(得分:0)
尝试删除此行代码
AlarmPreferencesActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
也许这会有所帮助。