public static interface LoaderManager.LoaderCallbacks
android.support.v4.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. |