1

There is very simple code. MainActivity.java:

public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<String> {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getSupportLoaderManager().initLoader(0, null, this);
    }

    @NonNull
    @Override
    public Loader<String> onCreateLoader(int id, @Nullable Bundle args) {
        return new TestLoader(this);
    }

    @Override
    public void onLoadFinished(@NonNull Loader<String> loader, String data) {
        Toast.makeText(this, data, Toast.LENGTH_LONG).show();
    }

    @Override
    public void onLoaderReset(@NonNull Loader<String> loader) {

    }

    public static class TestLoader extends AsyncTaskLoader<String> {
        public TestLoader(@NonNull Context context) {
            super(context);
        }

        @Nullable
        @Override
        public String loadInBackground() {
            Log.d("LOADER", "test");
            return "TEST";
        }

        protected void onStartLoading() {
            forceLoad();
        }
    }
}

build.gradle

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.myapplication"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
}

Android Studio 3.1.4. Every time after orientation change I see in log "com.myapplication D/LOADER: test"

Why? As I know, initLoader must return last data? Why loadInBackground called on orientation change?

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Hagakurje
  • 1,002
  • 2
  • 11
  • 17

0 Answers0