title: AsyncTaskLoader incorrect method call onLoadFinished
body: <p>I'm trying to deal with AsyncTaskLoader. I implemented the Interface LoaderCallbacks  follows: </p>
  
  <pre><code>public class MainActivity extends Activity implements LoaderCallbacks&lt;String&gt; {
  ...
  ...
  @Override
  public Loader&lt;String&gt; onCreateLoader(int id, Bundle args) {
      Log.w("loader","onCreate");
      return new JSONLoader(this);
  }
  
  
  @Override
  public void onLoadFinished(Loader&lt;String&gt; arg0, String arg1) {
          Log.w("loader","finish");
  
  }
  
  @Override
  public void onLoaderReset(Loader&lt;String&gt; arg0) {
      Log.w("loader","onReset");
      // TODO Auto-generated method stub
  
  }
  
  
  public void useLoader() {
  
      Log.w("loader","useLoader");
        Bundle args = new Bundle();
        // ...
        // fill in args
        // ...
  
  
        Loader loader = 
           this.getLoaderManager().initLoader(0, args, this);
  
        Log.w("HashLoader",String.valueOf(loader.hashCode()));
        // with support library: 
        // Loader loader = 
        //    context2.getSupportLoaderManager().initLoader(0, args, this);
        // call forceLoad() to start processing
        loader.forceLoad();
  
     } 
  </code></pre>
  
  <p>I get a hung event for button:</p>
  
  <pre><code>btn.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View v) {
              useLoader();
          }
      });
  </code></pre>
  
  <p>When I push the button the first time the method onLoadFinished() is called after the loader. But when push button a second time it calls the first onLoadFinished(). </p>
  
  <p>Logcat :</p>
  
  <pre><code>useLoader
  onCreate
  1087415440
  good
  finish
  useLoader
  finish
  1087415440
  good
  </code></pre>
  
  <p>A little about AsyncTaskLoader:</p>
  
  <pre><code>public class JSONLoader extends AsyncTaskLoader&lt;String&gt; {
  
  public JSONLoader(Context context) {
      super(context);
      // TODO Auto-generated constructor stub
  }
  
  @Override
  public String loadInBackground() {
              try {
          Thread.sleep(5000);
      } catch (InterruptedException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
      }
  
      Log.w("loader","good");
          return " ";}
  </code></pre>
  
  <p>Why does the method onLoadFinished() not wait for the end of the Thread?</p>