我是 Loaders 新手,正在尝试在 LoaderTestCase
中测试最基本的 AsyncTaskLoader
。然而 getLoaderResultSynchronously 永远不会完成。这是整个类(class):
public class LoaderTest extends LoaderTestCase{
public void testLoader() {
String result = getLoaderResultSynchronously(new AsyncTaskLoader<String>(getContext()){
@Override
public String loadInBackground() {
return "hello";
}
});
assertEquals(result, "hello");
}
}
我错过了什么?
最佳答案
getLoaderResultSynchronously() 调用通过参数传递的 Loader 的 startLoading() 和 stopLoading() 方法。您必须实现它。
public final void testLoader() {
String result = loader.getLoaderResultSynchronously(new AsyncTaskLoader<String>(
getContext()) {
@Override
public String loadInBackground() {
return "hello";
}
/* (non-Javadoc)
* @see android.content.Loader#onStartLoading()
*/
@Override
protected void onStartLoading() {
// TODO Auto-generated method stub
forceLoad();
}
/* (non-Javadoc)
* @see android.content.Loader#onStopLoading()
*/
@Override
protected void onStopLoading() {
// TODO Auto-generated method stub
cancelLoad();
}
});
关于android - 非常基本的 LoaderTestCase 卡在 getLoaderResultSynchronously 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18453166/