flutter 应用程序的一种风格自动打开最近应用程序列表中的另一种风格

dfty9e19  于 2023-04-22  发布在  Flutter
关注(0)|答案(1)|浏览(136)

在flutter中,我尝试使用不同的应用ID创建多个flavor,其中一个flavor会自动打开最近应用列表中的另一个flavor

实际上,我检查了应用程序ID.it是罚款的所有口味安装在移动的上.在一些移动,它工作正常.但对于一些移动应用程序的一个风味自动打开其他风味在最近的应用程序列表.

xlpyo6sf

xlpyo6sf1#

听起来你可能遇到了任务关联问题。这可能会导致Android以不同的风格启动应用的多个示例。
默认情况下,Android会根据应用的包名称(即应用ID)为应用的每个示例分配一个唯一的任务ID。此任务ID用于管理应用在最近应用列表中的状态,因此,如果应用的多个示例具有相同的任务ID,则它们可能会在最近应用列表中分组在一起。
要避免此问题,您可以通过将taskAffinity属性添加到每个风格的AndroidManifest.xml文件中,为应用的每个风格设置唯一的任务关联性。
例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">

    <!-- ... -->

    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="MyApp"
        android:icon="@mipmap/ic_launcher">
        
        <!-- ... -->
        
        <!-- set a unique task affinity for this flavor -->
        <activity
            android:name=".MainActivity"
            android:label="MyApp"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
            android:theme="@style/LaunchTheme"
            android:launchMode="singleTop"
            android:taskAffinity="com.example.myapp.flavor1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        
        <!-- ... -->

    </application>
</manifest>

在上面的示例中,MainActivity Activity的 taskAffinity 属性设置为 com.example.myapp.flavor1,该Activity是应用的主入口点。您需要为应用的每个风格设置唯一的任务关联,并为每个风格使用不同的值。
通过为每种风格设置唯一的任务关联性,您应该能够确保应用的每种风格在最近使用的应用列表中作为单独的任务启动,并且不会自动将它们分组在一起。

相关问题