在 xml 中设置 PreferenceScreen 的 Intent-flags

发布于 2024-11-09 13:04:56 字数 641 浏览 7 评论 0原文

我的 PreferencesActivity 视图是通过 XML 填充的,在该 XML 中我包含了一个 PreferencesScreen 来导航到系统的同步首选项。 使用下面的代码可以正常工作。

我的问题/问题是,当我打开同步首选项,打开主屏幕,然后再次打开我的应用程序时,同步设置被打开,因为它们位于堆栈顶部。 是否可以在 xml 中包含 NEW_TASK 标志来告诉屏幕这是一个新任务并且与我的应用程序堆栈无关?

<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>

My PreferencesActivity's view is populated through XML and in that XML I included a PreferencesScreen to navigate to the system's sync-preferences.
It works fine using the code below.

My problem/question is, that when I opened the Sync-Preferences, open the home-screen and then open my App again, the Sync-Settings are opened, because they lie on top of the stack.
Is there a possibility to include the NEW_TASK-flag in the xml to tell the screen that it's a new task and not associated with my App's stack?

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烙印 2024-11-16 13:04:56

您可以设置 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

You can set android:launchMode="singleInstance".
In your code example this would be:

    <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>

A "singleInstance" activity, on the other hand, permits no other activities to be part of its task. It's the only activity in the task. If it starts another activity, that activity is assigned to a different task — as if FLAG_ACTIVITY_NEW_TASK was in the intent.

You can read more here: http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文