Same

On Wednesday, June 27, 2012 4:53:47 PM UTC+3, szakalinhoPL wrote:
>
> Hello,
> I noticed a strange situation when using Loader in Fragment (in Activity 
> works well). I init Loader in onActivityCreated() as suggested in 
> documentation (http://developer.android.com/guide/components/loaders.html) 
>  and after orientation change framework calls twice 
> method LoaderCallbacks.OnLoadFinished but not in initLoader (probably 
> beacause Fragment is not in started state, but in docs there is information 
> that I should be prepared for this 
> (http://developer.android.com/reference/android/app/LoaderManager.html#initLoader(int,
>  
> android.os.Bundle, android.app.LoaderManager.LoaderCallbacks<D>)  but it 
> never happens) . However if I call iniLoader in Fragment.onResume() 
> everything works as expected. The same issue is described here 
> https://groups.google.com/forum/?fromgroups#!topic/android-developers/aA2vHYxSskU.
>  
> It happens using support library as well. Anyone noticed this situation? I 
> wrote very simple application to test this issue, here is sample code:
>
>
> //Activity class
>
> package com.example;
>
> import android.app.Activity;
> import android.app.LoaderManager;
> import android.os.Bundle;
>
> public class MyActivity extends Activity
> {
>     /**
>      * Called when the activity is first created.
>      */
>     @Override
>     public void onCreate(Bundle savedInstanceState)
>     {
>         super.onCreate(savedInstanceState);
>         setContentView(R.layout.main);
>
>         LoaderManager.enableDebugLogging(true);
>         if (savedInstanceState == null)
>         {
>             getFragmentManager().beginTransaction().add(R.id.container, 
> new TestFrag(), "asdf").commit();
>         }
>     }
> }
> //Fragment class
>
> package com.example;
>
> import android.app.Fragment;
> import android.app.LoaderManager;
> import android.content.Loader;
> import android.os.Bundle;
> import android.util.Log;
>
> public class TestFrag extends Fragment
> {
>     @Override
>     public void onActivityCreated(Bundle savedInstanceState)
>     {
>         super.onActivityCreated(savedInstanceState);
>         LoaderManager.LoaderCallbacks c = new 
> LoaderManager.LoaderCallbacks()
>         {
>             @Override
>             public Loader onCreateLoader(int id, Bundle args)
>             {
>                 return new Loader<Object>(getActivity())
>                 {
>                     @Override
>                     protected void onStartLoading()
>                     {
>                         Log.d("TAG", "onStartLoading " + this);
>                         deliverResult(new Object());
>                     }
>                 };
>             }
>
>             @Override
>             public void onLoadFinished(Loader loader, Object data)
>             {
>                  //THIS IS CALLED TWICE
>                 Log.d("TAG", "onLoadFinished " + data);
>             }
>
>             @Override
>             public void onLoaderReset(Loader loader)
>             {
>             }
>         };
>         getLoaderManager().initLoader(100, null, c);
>
>     }
>
> }
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to