Android Lollipop在完成后调用onCreate()

时间:2014-11-11 21:12:50

标签: android android-activity android-5.0-lollipop activity-lifecycle

这是Android Lollipop 5.0的一个奇怪的行为。 我有两个活动,A和B. A启动活动B.当我点击后退按钮时,在活动B中,Android在A上调用onCreate方法。 仅在Lollipop 5.0中可以观察到此行为。 在其他版本中,onCreate在完成另一个活动后从未被调用。

有什么问题?

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.example"
android:versionCode="1"
android:versionName="1" >

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="21" />

<application
    android:name=".Application"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppThemeMaterial" >
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name=".activities.ActivityA"
        android:configChanges="orientation|keyboardHidden|screenSize"
        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=".activities.ActivityB"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/activityB" >
    </activity>
</application>

</manifest>

2 个答案:

答案 0 :(得分:16)

请确保未选择该选项

开发者选项 - &gt;不要保持活动

enter image description here

答案 1 :(得分:4)

我认为发生的事情是,当您离开活动A时,onStop()会在活动A上被调用,因为它已完全隐藏且B位于它。

通常现在,当您在按下A之后恢复活动时onStart(),然后onResume()

但是,如果您看到Activity LifeCycle,那么在技术上也可以调用onCreate(),如果您的应用程序的进程被系统杀死,如果其他具有更高优先级的应用程序需要更多的记忆。