Committing a fragment is asynchronous; isAdded() doesn't return true until the transaction is committed.
On Thu, Jul 21, 2011 at 9:33 AM, Gab <gabriel.del...@gmail.com> wrote: > I have a same problem, my fragment lost the reference of activity > after pause/resume... > I don't understand the fragment's lifecycle. > > On 19 juil, 15:10, Guian <guiandou...@gmail.com> wrote: > > well well ... > > > > here is the fix I used : > > > > on the creation of my fragment I add a test in fragment.getActivity() > > is null ... > > > > if(testFragment == null || testFragment.getActivity()==null) > > testFragment = (TestFragment) TestFragment.instantiate(context, > > "com.mypackage.test.MyFragment"); > > > > and I recreate a previously build fragment which I think isn't very > > optimised ... > > > > any comment/advise on this is welcome. > > > > On 19 juil, 14:31, Guian <guiandou...@gmail.com> wrote: > > > > > here is the source code forisAdded: > > > > > /** > > > * Return true if the fragment is currently added to its activity. > > > */ > > > final public booleanisAdded() { > > > return mActivity != null && mAdded; > > > } > > > > > indeed ... mActivity is null... > > > > > I guess I have to recreate this fragment from scratch since I've lost > > > its activity owner ? > > > what cause this reference on mActivity being lost ? > > > if its the onPause => onResume, what's the point of having a onPause > > > onResume methods to implement in Fragment, if we have to recreate it > > > anyway ? > > > > > On 19 juil, 12:23, Guian <guiandou...@gmail.com> wrote: > > > > > > I've seen thatisAdded() can return false even if the field 'mAdded' > > > > in the Fragment is true ? > > > > (seen in the 'Variables' view in eclipse ) > > > > > > does anybody know why ? > > > > > > On 19 juil, 11:46, Guian <guiandou...@gmail.com> wrote: > > > > > > > I can't understand how this piece of code : > > > > > > > if(!fragmentsToAdd.isAdded()) > > > > > ft.add( R.id.parent, fragmentsToAdd, "myFragment"); > > > > > > > can lead to this exeption : > > > > > > > FATAL EXCEPTION: main > > > > > java.lang.IllegalStateException: Fragment already added: > > > > > TestFragment{40856358 #0 id=0x7f060024 "myFragment"} > > > > > at android.app.BackStackRecord.doAddOp(BackStackRecord.java:322) > > > > > at android.app.BackStackRecord.add(BackStackRecord.java:316) > > > > > at com.mypackage.test.MyActivity.onTabSelected(MyActivity.java:164) > > > > > > > does the isAdded() function works fine ? > > > > > > > ( used with android 3.1, it happens when leaving the app in pause > > > > > state, then resume it and change Tab from the action bar. ) > > > > > > > any cu > > -- > 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 > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- 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