Android повторно использовать действия в разных частях приложения
Я занимаюсь разработкой приложения и хотел бы повторно использовать действия, которые похожи, чтобы не копировать практически идентичный код. Давайте представим, что у меня есть 4 действия: - MainActivity - Task1Activity - Task2Activity - MenuActivity
Task1Activity или Task2Activity действительно похожи, поэтому я хочу создать только одно действие, называемое TaskActivity, и передать некоторые данные через Intent для управления в TaskActivity другим поведением. Для упрощения можно считать, что разница будет только в навигационном потоке. Навигационный поток, который я хотел бы реализовать:
MainActivity <-> MenuActivity <-> Task1Activity
or
MainActivity <-> Task2Activity
Если бы я мог повторно использовать TaskActivity в 2 разных местах в моем потоке навигации, у меня было бы:
MainActivity <-> MenuActivity <-> TaskActivity
or
MainActivity <-> TaskActivity
Проблема в том, что когда я определяю TaskActivity в моем файле манифеста, мне нужно добавить что-то вроде:
<activity
android:name="br.com.example.TaskActivity"
android:label="Just an example"
android:launchMode="singleTask"
android:configChanges="orientation"
android:parentActivityName="br.com.example.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="br.com.example.MainActivity" />
</activity>
Во время определения TaskActivity, приведенного выше, мне необходимо указать, какой Activity будет моим PARENT_ACTIVITY. Но родительским действием для этого примера может быть MenuActivity или MainActivity. Как я могу определить свою TaskActivity без указания того, что будет родительским действием? Если есть способ сделать это, следует ли ожидать каких-либо проблем при нажатии кнопки назад в Android?
Спасибо Карлос
2 ответа
Зачем вам нужно включать метаданные для PARENT_ACTIVITY в манифест? Это какое-то ограничение на то, что вы делаете? Вы можете объявить свою активность в AndroidManifest без метаданных для PARENT_ACTIVITY, поэтому ваша проблема будет решена.
После некоторых исследований я обнаружил, что PARENT_ACTIVITY используется для кнопки UP в новых версиях Android. Так как я не хочу рисковать и не знаю, как тестировать в новых версиях Android, я решил использовать PARENT_ACTIVITY для всех моих действий в качестве моей MainActivity. Для повторного использования кода я буду использовать наследие.