有非常简单的代码。 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调用方向更改?