向上导航进入主要活动

时间:2015-02-27 20:24:33

标签: android

我有以下Androidmanifest文件     

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".First"
        android:label="@string/title_activity_first"
        android:parentActivityName=".MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="android.anoop.com.myapplication.MainActivity" />
    </activity>
    <activity
        android:name=".Second"
        android:label="@string/title_activity_second"
        android:parentActivityName=".First" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="android.anoop.com.myapplication.First" />
    </activity>
</application>

在主要活动的onCreate方法中,我有以下代码来启动第二个活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent1=new Intent(this,Second.class);
    startActivity(intent1);
}

除了所有其他活动代码是android studio默认提供的。但是当我从第二个活动按下按钮时,它直接进入主要活动,而不是第一个活动。我知道有这个问题的替代解决方案,但我只是想知道为什么向上导航的行为就像这样。我是Android的新手,所以我可能不会理解一些非常简单的东西。任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

因为 FirstActivity未启动或创建。您直接从主要活动呼叫Second。由于在应用程序堆栈中没有任何First Activity可用,Second Second Activity如何转到父Activity First?它将转到主活动,因为它唯一的活动仍然在堆栈中。

答案 1 :(得分:0)

如果您在FirstActivity的onCreate中使用SecondActivity,那么它将转到SecondActivity。但想一想,什么时候活动真的开始了?

它在你调用onCreate,然后是onStart,然后是onResume,然后你的Actiivity终于开始运行时启动。在你的情况下,你不允许进一步onCreate,因此FirstActivity从未开始。这就是为什么当你返回导航时它跳转到之前打开的Activity,即MainActivity。

我希望这能解决你的问题!有关参考,请参阅此link.

中活动的Lificycle