There is never a reason to use singleInstance
launch mode.
If you are building a "home screen" replacement or a launcher type application, you would use singleInstance
or singleTask
launch mode to ensure that your Activity
is always the root of its task. This makes sure that if another application launches your Activity
, that Activity
does not get launched into the task of the calling application and it also ensures that there is only ever one instance of your Activity
created.
If you are writing a "home screen" replacement application, you can always make sure that no other activities get launched into your own task by always specifiying Intent.FLAG_ACTIVITY_NEW_TASK
when launching other activities. In that case, you can use launch mode singleTask
. So there is no reason to use launch mode singleInstance
. But it probably wasn't clear to the original developers of Android at the time.