onPause () Android - PullRequest
       7

onPause () Android

1 голос
/ 20 марта 2012

У меня есть приложение, которое подключается к URL каждые X секунд в onPostExecute библиотеки, которую я сделал. Когда я закрываю приложение или возвращаюсь назад с помощью кнопки «Назад», оно должно останавливаться с переопределением метода onPause() в основном классе активности. Я хочу управлять этим с помощью своей собственной библиотеки, чтобы облегчить создание класса для новых разработчиков, но если я переопределю его в методе библиотеки onPause(), он продолжит устанавливать соединения. Есть ли способ сделать это в моей библиотеке?

Вот мой код на основной класс:

@Override
public void onPause() {
    super.onPause();
    myLib.stopResource();
    myLib.flagRefresh = false;
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
        myLib.stopResource();
        myLib.flagRefresh = false;
        super.onBackPressed();
        return true;
     }
     return super.onKeyDown(keyCode, event);    
}

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Вы должны использовать onStop() вместо onPause(), который вызывается, когда действие не отображается на экране, но все еще выполняется, т.е. когда экран становится черным. Вместо перезаписи onKeyDown() лучше использовать метод onBackPressed(), однако, если вы поместите текущий код onPause() в onStop(), вам не потребуется перезаписывать его.

0 голосов
/ 20 марта 2012

Единственный способ, которым я вижу это, это извлечь новый класс из Activity, поддерживающий вашу библиотеку. Но этот подход приведет к перестановочному взрыву. Любой специалист по стандартной деятельности тоже нуждается в MyLib-варианте. (ListActivity, FragmentActivity и т. Д.)

class MyLibActivity extends Activity {
    @Override
    public void onPause() ..

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)..

}

Так что, вероятно, лучше всего предложить поддержку чистой деятельности.

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