6

PreferencesActivityの のビューは XML を介して取り込まれ、その XML にはPreferencesScreen、システムの同期設定に移動するための が含まれています。以下のコードを使用すると正常に動作します。

私の問題/質問は、Sync-Preferences を開いてホーム画面を開き、アプリを再度開くと、Sync-Settings がスタックの一番上にあるため、開かれることです。新しいタスクであり、アプリのスタックに関連付けられていないことを画面に伝えるために、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>
4

1 に答える 1

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

于 2012-11-22T15:24:12.217 に答える