В моем приложении для Android есть набор мини-приложений. Короче говоря, главный экран содержит несколько значков, по одному для мини-приложений. Когда нажимается значок, запускается мини-приложение. Всего у меня 4 мини-приложения. Итак, вы можете себе представить, что мой главный экран похож на Home Screen Launcher. Хотя эти мини-приложения могут работать автономно самостоятельно, я хочу, чтобы пользователь был аутентифицирован. Таким образом, существует функция LoginActivity прямо перед MainActivity.Хотите узнать о правильном использовании taskAffinity & launchModes?
LoginActivity -> MainActivity ---> AppOneActivity
---> AppTwoActivity
---> AppThreeActivity
---> AppFourActivity (aka PresenceListActivity)
Я все еще не уверен, что в интересах задач (организовали множество мероприятий), поэтому я хотел бы комментарии от экспертов Android на своих проектных решениях: -
(1) Я планирую установите атрибут finishOnTaskLaunch в true для LoginActivity. Насколько я понимаю, после авторизации логина я буду перемещаться по пользователю до MainActivity, и я хочу LoginActivity исчезнуть. Это лучше, чем позвонить #finish о деятельности? Будет ли MainActivity автоматически становиться корнем задачи без какой-либо дополнительной конфигурации/кода?
(2) Одним из мини-приложений является IM-клиент. PresenceListActivity будет содержать множество экземпляров ChatActivity (индивидуальный сеанс чата с активным контактом в buddylist). Я планирую использовать стандартный режим запуска для ChatActivity, так как каждый чат должен обрабатываться новым экземпляром. Звучит правильно?
(3) Липкий панель навигации будет существует в верхнем углу AppOneActivity, AppTwoActivity и т.д .. Я планирую установить clearTaskOnLaunch атрибут верно для всех из них. Насколько я понимаю, я должен очистить стек, когда планирую запустить любой из мини-приложений. Также их launchModes будет singleTask. Я на правильном пути?
(4) Наконец-то я действительно не понимаю, как читать вывод adb shell dumpsys activity. Например
Task{10 com.me.rnd.exit}
clearOnBackground=false numActivities=1
affinity=com.me.rnd.exit
lastActiveTime=5513102 (inactive for 5s)
History #1: .....
Task{2 com.android.launcher}
clearOnBackground=true numActivities=1 rootWasReset=true
affinity=com.android.launcher
lastActiveTime=5512949 (inactive for 6s)
Running #0:
Иногда под Задачи, вы увидите Истории и в других Идущих, что означают эти? Даже незнакомец, иногда у меня есть две История под задачей.
MainActivity необходимо получить и загрузить много данных, так что я не думаю, что ваше предложение будет работать. –
Что касается деятельности, которая обрабатывает активность входа или основную деятельность: LaunchActivity -> LoginActivity и LuanchActivity -> MainActivity Сначала он запускает LoginActivity. После успешного входа в систему активность входа заканчивается и исчезает, а пусковая установка показывает основное действие – user175750