Должен ли я предоставить подкласс деятельности для своей деятельности? - PullRequest
2 голосов
/ 09 ноября 2011

Я изучаю android, но у меня довольно хороший опыт работы с java, поэтому меня немного смущает большое количество учебников, непосредственно расширяющих (подклассифицирующих) Activity?

Я хочу правильно обрабатывать жизненный цикл активности во всех моих действиях, у меня около 4, может быть, 5, но очевидно, что в каждом действии может быть нажата клавиша home, пользователь может просто нажать кнопку питания.

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

1007 * например *

public class MyActivity extends Activity {
//overide the lifecycle methods
    protected void onCreate(Bundle savedInstanceState) { }

    protected void onStart() {
            //do my start stuff
    }
    protected void onResume() {
            //open db connection
    }
    protected void onPause() {
            //close db connection

    }
}

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

Тогда я бы хотел расширить MyActivity. Это разумный подход или я не в порядке?

Ответы [ 2 ]

3 голосов
/ 09 ноября 2011

Я думаю, что было бы неплохо иметь класс Abstract, который расширяет Activity и помещать все общие операции (такие как операции с кнопкой «Домой», которые вы упомянули, операции индикатора выполнения, функции поиска и т. Д.), Константы, используемые всемиваш Activities.Возможно, вы также захотите создать подкласс Application и сохранить переменные, к которым необходимо обращаться в глобальном контексте.

Посмотрите на некоторые приложения, которые разрабатывает Google, и попытайтесь использовать эти шаблоны проектирования. Приложение I / O Schedule является одним из них.

2 голосов
/ 09 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...