Как добавить флаги с моим намерением в файл манифеста - PullRequest
13 голосов
/ 11 июля 2011

мы знаем, что есть флаги, которые мы можем добавить к нашему намерению, используя метод addFlags () в нашем коде Java. Есть ли способ добавить эти флаги в сам файл манифеста вместо того, чтобы писать это в коде Java. Мне нужно добавить флаг REORDER_TO_FRONT для одного из моих действий в манифесте.

Как этого добиться?

Ответы [ 4 ]

9 голосов
/ 14 июля 2011

В файле манифеста вы не можете добавлять флаги Intent. Вам нужно установить флаг в Intent, который вы передаете startActivity.Вот образец:

Intent intent = new Intent(this, ActivityNameToLaunch.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
4 голосов
/ 04 октября 2013

Чтобы ответить на исходный вопрос, так как он появляется как первый ответ в поиске Google, это можно сделать, поскольку уровень API 3 (введен в 2009 году) с добавлением android:noHistory="true" к определению активности в файле манифеста, как описаноздесь: http://developer.android.com/guide/topics/manifest/activity-element.html#nohist.

пример:

<activity
   android:name=".MainActivity"
   android:label="@string/app_name"
   android:noHistory="true">
  <intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <category android:name="android.intent.cataegory.LAUNCHER"/>
  </intent-filter>
</activity>
3 голосов
/ 12 августа 2015

У меня была похожая проблема, и я хотел установить флаги

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

, чтобы деятельность всегда была на высоте.

В этом сценарии решение состоит в том, чтобы установить атрибут

android:launchMode="singleInstance"

в манифесте.

Как правило, в манифесте Android есть много атрибутов для действия, и вы можете поэкспериментировать с ними, чтобы получить те же эффекты, что и с флагами.

0 голосов
/ 27 сентября 2017

Этого легко достичь, используя android:launchMode="singleTop" в узле <activity> манифеста, например:

<activity
    android:name=".ui.activities.MainActivity"
    android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

Обратите внимание, что android:launchMode="singleInstance", как это задано @ jörg-eisfeldне рекомендуется использовать для общего использования, как указано в официальной документации: https://developer.android.com/guide/topics/manifest/activity-element.html (см. раздел android: launchMode )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...