我有以下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的新手,所以我可能不会理解一些非常简单的东西。任何帮助将不胜感激。谢谢。
答案 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