Search code examples
androidandroid-loaderasynctaskloader

Use different (AsyncTask) Loaders in one Activity


I want to use different AsyncTaskLoaders (different in their return type) in my Activity, what's the best way to implement the callback methods?

This won't work:

public class MyActivity extends Activity implements LoaderManager.LoaderCallbacks<MyPojo>, LoaderManager.LoaderCallbacks<MyOtherPojo>

Eclipse says

The interface LoaderCallbacks cannot be implemented more than once with different arguments

So what do I do? My idea is to make the Activity

implements LoaderManager.LoaderCallbacks<Object>

then check in the callback methods what type of object it is but that doesn't seem too elegant. Is there a better way?


Solution

  • What about creating an inner class for each callback?

    public class MyClass extends Activity {
    
      private class Callback1 implements LoaderManager.LoaderCallbacks<MyPojo> {
        ...
      }
      private class Callback2 implements LoaderManager.LoaderCallbacks<MyOtherPojo> {
        ...
      }
    }