Android LoaderManager:如何使用多个不同的加载程序从中获取正确的加载程序?

Android LoaderManager:如何使用多个不同的加载程序从中获取正确的加载程序?,android,asynctaskloader,Android,Asynctaskloader,现在我想创建几个不同类型的AsyncTaskLoader 一种可能是: public Loader<List<Category>> onCreateLoader(int id, final Bundle args) { ... } public Loader<BigInteger> onCreateLoader(int id, final Bundle args) { ... } public-Loader-onCreateLoader(i

现在我想创建几个不同类型的AsyncTaskLoader

一种可能是:

public Loader<List<Category>> onCreateLoader(int id, final Bundle args) {
    ...
}
public Loader<BigInteger> onCreateLoader(int id, final Bundle args) {
    ...
}
public-Loader-onCreateLoader(int-id,final-Bundle-args){
...
}
另一个可能是:

public Loader<List<Category>> onCreateLoader(int id, final Bundle args) {
    ...
}
public Loader<BigInteger> onCreateLoader(int id, final Bundle args) {
    ...
}
public-Loader-onCreateLoader(int-id,final-Bundle-args){
...
}
我读过这篇文章,但简单地检查一下身份证并不适合我的情况


我是否应该在活动中创建两组实现的方法来支持这两个加载程序?

您不必从回调继承片段,这在最简单的情况下非常方便。当您有不同的加载程序类型时,需要为每种类型创建一个本地回调实现。由于类型擦除,这是使用多个加载程序类型的唯一方法,而不会造成类型检查和强制转换的混乱。回调将是片段的成员,您将把它们传递到initLoader()方法。

为什么ID在您的情况下不起作用?因为类型不同,一个是List,另一个是BigInteger。如果我可以使用ID,我应该如何编写onCreateLoader函数和其他函数?谢谢!我还在其中一条注释()中找到了一些代码示例