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

В моем приложении я указал вторую активность, которую можно запустить из панели запуска, используя эту запись манифеста:

    <activity 
        android:name=".Lists.ListOfListsActivity"
        android:icon="@drawable/ic_launcher_lists" 
        android:launchMode="singleTop"
        android:label="@string/lists_activity_name" >
        <!--  An Intent filter so that the Lists activity shows in the Launcher -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Допустим, у меня открыто приложение в «основном» действии, затем нажмите клавишу «Домой». Мое приложение все еще будет работать, но в фоновом режиме.

Позже пользователь выбирает значок запуска, который у меня есть для «ListsOfListsActivity» на главном экране.

Это выведет приложение на передний план, но НЕ на «ListOfListsActivity», а на то, какой бы ни была его текущая активность, когда она перешла в фоновый режим (например, в «основной» активности).

Это сбивает с толку, так как пользователь выбрал «ListOfListsActivity», но отображается другой. Затем они должны перейти к нему.

У меня это работало лучше, указав launchMode = "singleTask" для "ListOfListsActivity", но в этом режиме его нельзя запустить из другого действия для результата (startActivityForResult()), и мне нужно иметь возможность сделать это, чтобы выбрать список...

Вопрос: - как указать фильтр намерений, который выведет активность на передний план и будет выбранной активностью, независимо от текущего состояния приложения и его текущей активности??


person Andrew Mackenzie    schedule 05.07.2011    source источник
comment
хорошо, я попробую.... но, как этот, у меня не так много ответов, которые я считаю ответом на вопрос....   -  person Andrew Mackenzie    schedule 14.07.2011
comment
был ответ на этот вопрос, который я собирался принять (попробовав его, чтобы увидеть, работает ли он), и теперь он исчез! :-(   -  person Andrew Mackenzie    schedule 14.07.2011


Ответы (1)


Моя последняя реализация состояла в том, чтобы определить другую строку taskAfinity для каждого действия, которое я хотел запустить независимо от Launcher.

Таким образом, каждый «ярлык» всегда запускает нужное мне действие, но недостатком, которого мне не удалось избежать, является то, что у пользователя может быть несколько задач с действием из моего приложения, и, возможно, одно и то же действие открыто/активно в разных задачах....

person Andrew Mackenzie    schedule 14.07.2011