简体   繁体   中英

Android Activity Lifecycle: onStart() -> onStop() possible?

In the Android Application Fundamentals it says that after the call to the onStart()-method of the activity lifecycle either the callback method onResume() or onStop() is called. In case of an "normal" Start of an activity the system calls onCreate() , onStart() , onResume() . But does somebody know an example where onStart() - onStop() are executed one after another?

  1. From your activity, start another activity that is not full-screen (for example give it android:theme="@android:style/Theme.Dialog").

    At this point your first activity has had onPause() called but not onStop() because it is not in the front but still visible.

  2. Press home.

    At this point onStop() is called for your first activity.

  3. Relaunch your app.

    At this point onStart() is called for your first activity, but not onResume() because it still has the non-full-screen activity on top of it.

  4. Press home.

    At this point onStop() is called on the first activity, without having gone through onResume().

When the user leaves your activity, the system calls onStop() to stop the activity
(1). If the user returns while the activity is stopped, the system calls onRestart()
(2), quickly followed by onStart()
(3) and onResume()
(4). Notice that no matter what scenario causes the activity to stop, the system always calls onPause() before calling

According to the flowchart on the page provided, it is not possible for onStop() to be called without onResume() being called. I could think of some potential scenario in which the system shuts down the application in the middle of starting it up, but I have no clue what or how such a scenario would be triggered, or if it even exists.

As pointed out by Tseng, it's possible that a task will never be brought to the foreground (I'm thinking of say, the task that syncs the phone with an Exchange server). I imagine Such a task will never have onResume() or onPause() called.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM