2013-08-26 22 views
2

我是新來的裝載機,並試圖測試LoaderTestCase中最基本的AsyncTaskLoader。但是getLoaderResultSynchronously永遠不會結束。這是整個班級:非常基本的LoaderTestCase卡在getLoaderResultSynchronously

public class LoaderTest extends LoaderTestCase{ 

    public void testLoader() { 
     String result = getLoaderResultSynchronously(new AsyncTaskLoader<String>(getContext()){ 

      @Override 
      public String loadInBackground() { 
       return "hello"; 
      } 

     }); 

     assertEquals(result, "hello"); 
    } 
} 

我錯過了什麼?

回答

2

getLoaderResultSynchronously()呼叫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(); 

     } 



    });