Android 设置启动模式=";“单一任务”;vs设置活动启动模式=";单顶;
我有一个非常有层次性的应用程序(活动类似于联盟>团队>位置>球员),因此我将每个活动Android 设置启动模式=";“单一任务”;vs设置活动启动模式=";单顶;,android,android-activity,android-manifest,android-navigation,Android,Android Activity,Android Manifest,Android Navigation,我有一个非常有层次性的应用程序(活动类似于联盟>团队>位置>球员),因此我将每个活动singleTop,以保持导航的合理性并防止重复实例 现在我正在制作第二个应用程序,我看到有人建议将我的应用程序声明为singleTask,以防止重复实例。有人能解释一下每种方法的优点吗 我的新应用程序只是一个包含3个片段的活动,然后我可能会添加一个设置活动和一个常见问题解答 编辑:我刚刚意识到,singleTask并没有像我想的那样阻止我的应用程序的重复实例。现在正在寻找处理此问题的正确方法…我认为您对sing
singleTop
,以保持导航的合理性并防止重复实例
现在我正在制作第二个应用程序,我看到有人建议将我的应用程序声明为singleTask
,以防止重复实例。有人能解释一下每种方法的优点吗
我的新应用程序只是一个包含3个片段的活动,然后我可能会添加一个设置活动和一个常见问题解答
编辑:我刚刚意识到,
singleTask
并没有像我想的那样阻止我的应用程序的重复实例。现在正在寻找处理此问题的正确方法…我认为您对singleTop和singleTask的定义有点不正确。SingleTop可能会生成一个重复的实例。让我们用你的例子,联盟>球队>位置>球员。如果玩家屏幕中有一个按钮将带您进入联盟屏幕,它将变成联盟>球队>位置>玩家>联盟
而singleTask保证活动只能存在一个实例。我在这里找到了答案:
“单顶”:
与“标准”的区别在于,如果活动实例已存在于当前任务的顶部,并且系统将意向路由到此活动,则不会创建新实例,因为它将触发onNewIntent()方法,而不是创建新对象。让我们以Twitter oauth集成为例
“单一任务”:
将始终创建一个新任务,并将一个新实例作为根实例推送到该任务。但是,如果任何任务中存在任何活动实例,系统将通过onNewIntent()方法调用将意图路由到该活动实例。在此模式下,可以将活动实例推送到同一任务。如果用户单击singleTask活动中的BACK键,系统会将用户返回到上一个活动。Android活动启动模式 4种模式
我怀疑我没有完全理解他们的定义。谢谢你的澄清。我的主要目标是处理当我的用户进入联赛>球队>位置,然后最小化并重新进入应用程序,这是加载联赛而不是位置。通过声明SingleTop,我的应用程序现在总是在我停止的地方加载。不知道为什么singleTask不这样做。@NSouth您有没有发现singleTask不这样做的原因?谢谢您提供了这个简单而准确的答案。