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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Den Brown
38 / 38 / 0
Регистрация: 08.10.2013
Сообщений: 123
Записей в блоге: 1
#1

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

03.04.2014, 17:55. Просмотров 770. Ответов 2
Метки нет (Все метки)

Всем привет!

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

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

В Активити вижу два 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 Bluetooth и два активити
Может ли быть два виджета в одном проекте где у каждого будет своя активити настроек? Android
Android Не передаются данные между onCreate и onResume
Android Кто-то сможет обьяснить зачем нужно intent::SetAction?
Android Android: как не перезагружать webview в activity при OnResume?
Как работает внедрение зависимостей, и зачем нужно его использовать? Android
Метод фрагмента onResume() перестает вызываться после вызова метода recreate() для Activity Android
Активити и фрагмент Android
Android Абстрактная активити
Адаптивность Активити Android
Загрузка активити Android
Из Активити в Фрагмент 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, скинь исходники посмотреть
Ответ Создать тему
Опции темы

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