Форум программистов, компьютерный форум CyberForum.ru

Зачем нужно два onResume() в Активити? - Android

Войти
Регистрация
Восстановить пароль
 
Den Brown
38 / 38 / 0
Регистрация: 08.10.2013
Сообщений: 123
Записей в блоге: 1
03.04.2014, 17:55     Зачем нужно два onResume() в Активити? #1
Всем привет!

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

Только что создал шаблон Приложения для одной коммерчесской Платформы. Все что этот шаблон делает: логит юзера и делает пару РЕСТ аутколов. МНе ничего другого пока и не надо. Но даже в этом простом коде я вижу непонятный места.

В Активити вижу два onResume(), понимаю из комментариев зачем они, но не понимаю как вызывается второй кастомный onResume().

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class MainActivity extends PlatformActivity {
 
    private RestClient client;
    private ArrayAdapter<String> listAdapter;
    
    @Override
    protected void onCreate....
    
    @Override 
    public void onResume() {
        // Hide everything until we are logged in СКРЫВАЕМ НА ПЕРИОД ПОКА ЛОГИМСЯ, здесь все понятно
        findViewById(R.id.root).setVisibility(View.INVISIBLE);
 
        // Create list adapter
        listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
        ((ListView) findViewById(R.id.contacts_list)).setAdapter(listAdapter);              
        
        super.onResume();
    }       
    
    @Override // И ВОТ ВТОРОЙ onResume который принимает RestClient, но кто и когда его вызывает?
    public void onResume(RestClient client) {
        // Keeping reference to rest client // А откуда мы собственно передаем сюда этот client?
        this.client = client; // вот тут ситуация: а если бы вместо this.client мы написали просто client.
                                  //Получилось бы две переменные с одни именем? невозможно...
 
        // Show everything И наконец, после залогивания, мы все показываем...
        findViewById(R.id.root).setVisibility(View.VISIBLE);
    } // и супер класс super.onResume() не вызывается второй раз.

И второй небольшой вопрос.

В учебниках мы просто создаем Активити (одно или несколько) и все работает. А здесь я вижу такой класс:

Java
1
2
3
4
5
6
public class HelloMyApp extends Application {
 
    @Override
    public void onCreate() {
        super.onCreate();
        PlatformSDKManager.initNative(getApplicationContext(), new KeyImpl(), MainActivity.class);
то есть изначально вызывается Application наследник который и вызывает MainActivity.
Насколько такой путь - использование Application наследника - часто употребляемый?
Или это вообще единственно правильный путь?

Спасибо за ваше мнение и ответы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2014, 17:55     Зачем нужно два onResume() в Активити?
Посмотрите здесь:

Может ли быть два виджета в одном проекте где у каждого будет своя активити настроек? Android
Android Активити
Android Изменение параметров активити из другого активити
Android Android: как не перезагружать webview в activity при OnResume?
Вызов новой активити не из класса активити Android
Как вызвать метод в активити классе из обычного не активити класса? Android
Android Кто-то сможет обьяснить зачем нужно intent::SetAction?
Android Не передаются данные между onCreate и onResume
Метод фрагмента onResume() перестает вызываться после вызова метода recreate() для Activity Android
Android Bluetooth и два активити
Как работает внедрение зависимостей, и зачем нужно его использовать? Android
На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
03.04.2014, 18:22     Зачем нужно два onResume() в Активити? #2
Den Brown, использование Application зависит от того нужно ли вам что то сделать до того как начнет загружаться активити или нет. Например тут можно создать класс реализованный по Singleton шаблону, чтоб его нечаянно не сожрал сборщик мусора при объявлении его в активити.

Второй оnResume по видимому из PlatformActivity. Посмотрите исходники класса наверняка там вы его и найдете.
Gerc
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 13
04.04.2014, 11:58     Зачем нужно два onResume() в Активити? #3
Den Brown, скинь исходники посмотреть
Yandex
Объявления
04.04.2014, 11:58     Зачем нужно два onResume() в Активити?
Ответ Создать тему
Опции темы

Текущее время: 04:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru