Приложение с 2 активностями запуска - PullRequest
6 голосов
/ 12 января 2012

У меня есть приложение, которое содержит две операции с

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>

в манифесте. Я сделал это так, чтобы в ящике приложения было 2 отдельных записи. Он работает должным образом в отношении ящика приложения, как он есть.

Мой вопрос возникает во время установки. После того, как вы установили приложение только с одним действием MAIN / LAUNCHER, на последней странице есть кнопка открытия, которая запустит только что установленное приложение. В моем приложении эта кнопка открытия неактивна. Я предполагаю, что это потому, что он не знает, какое из двух действий я бы хотел запустить, если бы была нажата кнопка открытия. Есть ли что-нибудь, что я могу установить в манифесте (или в другом месте), чтобы указать, какое действие я бы хотел, чтобы кнопка открытия запускалась в конце процесса установки? Я думаю, что должно быть что-то, что я могу установить, потому что, когда я устанавливаю приложение через adb с помощью eclipse, оно запускает одно из двух действий, и, к счастью, именно оно мне и хотелось бы запустить.

Ответы [ 3 ]

7 голосов
/ 12 января 2012

Этот вопрос:

После загрузки приложения с двумя компонентами Launcher из Marketplace нажатие кнопки «Открыть» вызовет сбой

Помог мне заставить работать так, как я хотел. Ключ был добавлен:

    <activity-alias android:name="com.android.internal.app.ResolverActivity"
            android:targetActivity=".Main" android:exported="true">
    </activity-alias>

к манифесту и изменению ".Main" для ссылки на действие, которое вы хотите начать с кнопки открытия в конце установки.

Обратите внимание, что тег-псевдоним активности должен быть объявлен после тега активности, на который вы ссылаетесь (в xml).

1 голос
/ 12 января 2012

Настоятельно рекомендуется, чтобы в документации для Android было запущено несколько операций с главного экрана, чтобы каждая из них запускалась в рамках своей собственной задачи.Посмотрите эту статью для получения дополнительной информации.

При этом каждая задача будет иметь отдельное значение taskAffinity.Я верю , что задача, для которой установлено то же соответствие, что и для пакета приложения, - это та, которую установщик подберет для запуска.

0 голосов
/ 12 января 2012

Я бы предложил вам выполнить одно действие, которое считывает настройки и решает продолжить текущее действие или открыть другое действие.

Если вы не хотите начинать новое действие, попробуйте накачать соответствующий фрагмент.

...