我的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>
答案 0 :(得分:1)
你可以设置android:launchMode =“singleInstance”。 在您的代码示例中,这将是:
<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"
android:launchMode="singleInstance" />
</PreferenceScreen>
另一方面,“singleInstance”活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果它启动另一个活动,则该活动将分配给另一个任务 - 就像FLAG_ACTIVITY_NEW_TASK在意图中一样。
您可以在此处阅读更多内容:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode