MainActivity通过另一个活动的菜单中的后退按钮重新启动

时间:2016-03-05 17:00:30

标签: android

我的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>

该设置活动在菜单中有自动生成的后退按钮(您可以在屏幕截图中看到)。 enter image description here

问题是,当我按下该按钮时,它不会将我返回到MainActivity,而是再次创建它。当我在设置活动中按下后退按钮时,触发MainActivity的方法onDestroy。我可以通过单击在开始设置活动之前创建的后退按钮来获取MainActivity吗?

2 个答案:

答案 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);

也许这会有所帮助。