2

My intent was to ensure the root activity in the task had only a single instance at any condition. So I set android:launchMode="singleTask", which worked fine in most cases.

However, if I switched quickly my task to others and back for many times, the launchMode setting seemed losing effect. I observed a new instance of the activity was created before the previous one was destroyed, as log captured belowed.

Would anybody please help to provide a perfect solution to ensure on one instance of the root activity at ANY condition?

Thanks in advance

11-28 10:43:41.158: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onPause
11-28 10:43:41.158: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onResume
11-28 10:43:41.468: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onPause
11-28 10:43:41.468: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onResume
11-28 10:43:41.818: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onPause
11-28 10:43:41.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onCreate
11-28 10:43:42.848: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onStart
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onResume
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onPause
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onResume
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onStop
11-28 10:43:42.878: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onDestroy
11-28 10:43:42.928: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onPause
11-28 10:43:42.928: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onResume
firebear
  • 774
  • 1
  • 8
  • 19

1 Answers1

0

Are you calling finish() on the root activity while starting another activity? If so, remove that statement.

A root activity is generally created only once and is recreated only when it has been destroyed. This is normal application behavior without setting any flags in the manifest. If the root activity already exists, onStart() and onResume() will be called.