Android后退按钮无法正常工作

时间:2016-03-30 06:57:44

标签: android android-activity

当我点击第三个活动的后退按钮时,它会进行第一个活动,但我不知道出了什么问题,请帮忙。提前致谢

这是我的清单文件:

<application
    android:allowBackup="true"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:replace="@android:icon">
    <activity
        android:name=".firstActivity"
        android:label="@string/title_activity_main"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>
    <activity
        android:noHistory="true"
        android:name=".secondActivity"
        android:label="Todo List"
        android:parentActivityName=".firstActivy"
        android:theme="@style/AppTheme.NoActionBar">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.akbari.test.Main" />
    </activity>
    <activity
        android:noHistory="true"
        android:name=".thirdActivity"
        android:label="@string/title_activity_client_list"
        android:parentActivityName=".secondActivity"
        android:theme="@style/AppTheme.NoActionBar">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.akbari.test.Main" />
    </activity>
</application>

我在第二次活动中使用了这个,我认为System.exit(0)的问题

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
       appSettings();
        return true;
    } else if (id == R.id.action_refresh){
        init();
    } else if (id == R.id.action_exit){
        System.exit(0);
    }
    return super.onOptionsItemSelected(item);
}

3 个答案:

答案 0 :(得分:0)

如果您使用的是高于4.0(API级别16)的版本,那么显然原因可能是您已将第二个活动作为评论完成。

如果您使用的时间低于4.0,那么由于meta-data其中android:value第二和第三活动指向同一地点而发生这种情况。

查看here如何提供元数据,并查看与android:value

的值相同的android:parentActivityName属性
android:value="yourPackage.yourParentActivity"

答案 1 :(得分:0)

检查您在清单文件中的活动的顺序,例如,当应用程序启动时首先出现

&#13;
&#13;
<activity
            
            (e.g the home screen which has buttons on it when we launch the app it comes first so it is on the top)
            android:name=".firstActivity"


            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        (e.g these are buttons which is in the home screen  )
        <activity android:name=".Second Activity"
            android:screenOrientation="portrait"></activity>

        <activity android:name=".MainActivity"
            android:screenOrientation="portrait"></activity>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

问题在于android:noHistory="true",我现在删除了它。