Activity的启动模式是指在启动一个新的Activity时,该Activity如何与任务栈中的其他Activity进行交互的规则。Android中有四种主要的Activity启动模式,它们分别是:
启动模式可以通过在AndroidManifest.xml文件中的标签的android:launchMode属性来指定。不同的启动模式可以满足不同的业务需求,例如在需要单例模式的场景下可以使用singleInstance启动模式。
「静态方式:」
通过在AndroidManifest.xml文件中的标签中设置android:launchMode属性来设置Activity的启动模式。
「动态方式:」
通过设置启动的Activity的flag制动启动模式
Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
场景:一般的应用程序界面跳转
示例:从一个Activity跳转到另一个Activity,每次都创建新的实例
场景:需要频繁跳转到同一个Activity,并且不希望重复创建实例
示例:从Activity A跳转到Activity B,如果Activity B已经位于栈顶,则不创建新实例,直接使用已存在的实例
「singleTask」:
场景:需要确保整个应用中只有一个该Activity的实例
示例:应用的主界面,或者一个需要独立任务栈的特殊界面
「singleInstance」:
场景:需要将该Activity放置在一个新的任务栈中,并且确保整个系统中只有一个该Activity的实例
示例:一个需要独立任务栈的特殊界面,比如来电界面或者闹钟提醒界面
这些启动模式可以根据应用的需求来灵活选择,以达到最佳的用户体验和应用性能。