AsyncTaskLoader和方向更改

时间:2018-08-11 17:38:56

标签: android orientation asynctaskloader

有非常简单的代码。 MainActivity.java:

IsEnabled

build.gradle

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();
        }
    }
}

Android Studio 3.1.4。 每次更改方向后,我都会在日志“ com.myapplication D / LOADER:测试”中看到

为什么?据我所知,initLoader必须返回最后一个数据吗?为什么loadInBackground调用方向更改?

0 个答案:

没有答案