在将支持库升级到24.0.0之后,嵌套片段重新创建发生在父片段之前

时间:2016-07-05 18:32:19

标签: android android-fragments

目前,我有一个具有以下片段架构的演示应用程序。

MainActivity
    |
    |-- MainFragment
           |
           |-- NestedFragment

以下是我如何测试片段重新创建。

生成片段重新创建的步骤

  • 步骤1:将后台进程限制设置为1

enter image description here

  • 第2步:启动演示应用。我们会在MainFragment onCreate之前触发NestedFragment onCreated apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.example.yccheok.demo" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' }
  • 第3步:按主页按钮。
  • 第4步:启动其他5个应用。
  • 第5步:再次启动演示应用。片段重新创建将会发生。

请注意,步骤5会在不同的支持库

下产生不同的行为

com.android.support:appcompat-v7:23.4.0

使用以下build.gradle

MainFragment

在第5步中,在onCreate的{​​{1}} 之前触发了NestedFragment onCreated

com.android.support:appcompat-v7:24.0.0

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.example.yccheok.demo"
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0'
}

在第5步中,在NestedFragment的{​​{1}} 之前触发了onCreate MainFragment

用于演示此问题的代码

可以从https://github.com/yccheok/demo

下载

我认为 com.android.support:appcompat-v7:24.0.0 的行为是错误的。不应该在父片段之前创建子片段吗?

0 个答案:

没有答案