I have an app with two activities: "A" and "B".
"A" uses startActivityForResult()
to spawn "B" i.e. it waits for "B". Now, assume that "B" is in foreground. Can the Android system destroy activity "A" without also destroying "B"? (If yes, then when "B"is finished e.g. after user input, activity "A" must be recreated and put to the foreground again by the Android system, and I need to remember and restore "A" to its earlier UI status.)
Note that I'm not talking about process kill (which is different case: if a process is killed, all activities are killed and onDestroy() is not called or not guaranteed to be called). The question is merely about whether onDestroy() is possible while waiting for the result of a subactivity.
onActivityResult, called after onResume, The basic reason that when your jump from your activity to another activity without calling finish. Then last activity went in onStop state.
Android instantiates a new instance of the Activity that will get the result (the one that called startActivityForResult() ) Android calls onCreate() on the new Activity .
onDestroy: The final call you receive before your activity is destroyed.
startActivityForResult(Intent intent,int requestCode) will give the response from second activity to first activity as a result.
If Activity A gets killed by the time B finishes, you are guaranteed that
In other words, A will be re-created the next time the user visits/needs it, and at that point any pending results will be delivered (from B to A).
Also note that this is why results must be returned through a single Activity callback with an integer request code, instead of an arbitrary callback object.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With