在xml中为PreferenceScreen设置Intent标志

alo*_*pix 6 android preferences preferenceactivity android-preferences android-activity

PreferencesActivity的视图是通过XML填充的,在XML中我包含一个PreferencesScreen导航到系统的sync-preferences.使用下面的代码可以正常工作.

我的问题是,当我打开同步首选项时,打开主屏幕,然后再次打开我的应用程序,打开同步设置,因为它们位于堆栈顶部.是否有可能在xml中包含NEW_TASK-flag以告诉屏幕它是一个新任务而不是与我的应用程序堆栈相关联?

<PreferenceScreen
        android:title="@string/preferences_activity_syncaccounts_title"
        android:summary="@string/preferences_activity_syncaccounts_summary"
        android:dialogTitle="@string/preferences_activity_syncaccounts_title">
        <intent
            android:action="android.settings.SYNC_SETTINGS"/>
    </PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

小智 1

您可以设置 android:launchMode="singleInstance"。\n在您的代码示例中,这将是:

\n\n
    <PreferenceScreen\n        android:title="@string/preferences_activity_syncaccounts_title"\n        android:summary="@string/preferences_activity_syncaccounts_summary"\n        android:dialogTitle="@string/preferences_activity_syncaccounts_title">\n    <intent\n        android:action="android.settings.SYNC_SETTINGS"\n        android:launchMode="singleInstance" />\n    </PreferenceScreen>\n
Run Code Online (Sandbox Code Playgroud)\n\n

另一方面,“singleInstance”活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果它启动另一个活动,该活动将被分配给不同的任务 \xe2\x80\x94 ,就像 FLAG_ACTIVITY_NEW_TASK 在意图中一样。

\n\n

您可以在这里阅读更多信息:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

\n