I was following these four topics Creating a Fragment, Handling the Fragment Lifecycle , Managing the Activity Lifecycle and Pausing and Resuming an Activity. So I am in a little doubt about this. My question is
- If A
Activity
call BActivity
throughIntent
but A does not callfinish()
method then A will be inPause
state if B isTransparent
orSemiTransparent
and inStop
state if B isOpaque
. Am I right? - If A
Activity
containsFragment
F then if A will go toPause
state then F will go toPause
state and if A will be inStop
state then F will be inStop
state too. Am I right? - If A calls B
Activity
and B isTransparent
then A will be inPause
state and F will too. If B callfinish()
then A will come toResume
state but what will happen to F? will it come to resume from pause? If it is then how and what steps because I have not seen any direct link inFragment
life cycle which indicatesonPause()
toonResume()
directly as Activity can do.Hope I am able to ask what I want. Sorry for my bad Englsh.
You can't be sure that only onPause will be called on A if B is SemiTransparent or partially visible as I understand it:
Yes, you are right:
However, the opposite is not true, meaning that if a fragment receives onStop, that does not guarantee that the Activity's onStop will be called.
I am not quite sure what you mean by your last sentence or how you have tested this. According to the Fragment documentation:
It says generally because it depends on how the fragment is handled by the activity.
If A Activity call B Activity through Intent but A does not call finish() method then A will be in Pause state if B is Transparent or SemiTransparent and in Stop state if B is Opaque. Am I right?
Yes true
If A Activity contains Fragment F then if A will go to Pause state then F will go to Pause state and if A will be in Stop state then F will be in Stop state too. Am I right?
Yes correct
If A calls B Activity and B is Transparent then A will be in Pause state and F will too. If B call finish() then A will come to Resume state but what will happen to F? will it come to resume from pause? If it is then how and what steps because I have not seen any direct link in Fragment life cycle which indicates onPause() to onResume() directly as Activity can do.
What you understood is correct, even in this scenario also fragment will be moved from onPause to onResume state just like an activity. But unfortunately there is not much documentation about this in developer android. This might be because they wanted to avoid complicated diagrams which can create more confusion.