public static interface LoaderManager.LoaderCallbacks
| android.app.LoaderManager.LoaderCallbacks<D> |
客户端与管理器进行交互的回调接口。
公共方法(Public methods) |
|
|---|---|
abstract Loader<D> |
onCreateLoader(int id, Bundle args) 为给定的ID实例化并返回一个新的Loader。 |
abstract void |
onLoadFinished(Loader<D> loader, D data) 之前创建的加载器完成加载时调用。 |
abstract void |
onLoaderReset(Loader<D> loader) 当以前创建的加载程序正在重置时调用,从而使其数据不可用。 |
Loader<D> onCreateLoader (int id, Bundle args)
为给定的ID实例化并返回一个新的Loader。
| 参数(Parameters) | |
|---|---|
id |
int: The ID whose loader is to be created. |
args |
Bundle: Any arguments supplied by the caller. |
| 返回(Returns) | |
|---|---|
Loader<D> |
Return a new Loader instance that is ready to start loading. |
void onLoadFinished (Loader<D> loader, D data)
之前创建的加载器完成加载时调用。 需要注意的是,通常一个应用程序是不允许犯片段交易,而在此调用,因为活动的状态保存后它可能发生。 有关FragmentManager.openTransaction()方面的进一步讨论,请参阅FragmentManager.openTransaction() 。
这个函数保证在释放为这个Loader提供的最后一个数据之前被调用。 此时,您应该删除所有旧数据的使用(因为它将很快发布),但不应该自己发布数据,因为它的Loader拥有该数据并将处理该数据。 装载程序将负责管理其数据,因此您不必这样做。 尤其是:
装载程序将监视数据的更改,并在此处通过新的调用向您报告。 你不应该自己监控数据。 例如,如果数据是Cursor并将其放入CursorAdapter ,则使用CursorAdapter(android.content.Context, android.database.Cursor, int)构造函数而不传入FLAG_AUTO_REQUERY或FLAG_REGISTER_CONTENT_OBSERVER (即,对flags参数使用0)。 这可以防止CursorAdapter自己观察Cursor,这是不需要的,因为当发生更改时,您将得到一个新的Cursor在此处再次调用。
Cursor from a CursorLoader, you should not call close() on it yourself. If the Cursor is being placed in a CursorAdapter, you should use the swapCursor(android.database.Cursor) method so that the old Cursor is not closed. | 参数(Parameters) | |
|---|---|
loader |
Loader: The Loader that has finished. |
data |
D: The data generated by the Loader. |
void onLoaderReset (Loader<D> loader)
当以前创建的加载程序正在重置时调用,从而使其数据不可用。 此时应用程序应删除对加载程序数据的任何引用。
| 参数(Parameters) | |
|---|---|
loader |
Loader: The Loader that is being reset. |