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. Для повторного использования кода я буду использовать наследие.

Другие вопросы по тегам