Страница 2 из 4

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 09 окт 2012, 14:19
rezak90
у Андроида есть такая бида, из-за того что памятью управляет не разработчик а Dalvik, то он там что то скапливает или плохо распределяет ресурсы, из-за этого Андроид много "жрёт" батарею, и по этому телефоны на Андроиде садятся очень быстро (бывает новые телефоны за пол дня садятся) и это одна из самых больных тем. Если же Dalvik была так же открыта как сама ОСь может и можно было бы что то предпринять, а так вижу что народ часто устанавилвает всякие сборщики мусора и освободители памяти что бы освобождать/закрывать не нужные программы.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 ноя 2012, 16:24
DeadMazai
Мне кажется тут @Override перед onClick лишний - мы же не переопределяем метод супер-класса, а реализуем метод интерфейса.
Если не прав - поправьте, зеленый еще в этом деле :)

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 ноя 2012, 20:32
rezak90
это зависит от апи версии а переопределение здесь не причём

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 08 ноя 2012, 09:26
DeadMazai
Порылся на сайте документации и нарыл вот это.
http://developer.android.com/reference/ ... rride.html
Привязку к версии API я не нашел, да и логики в том, чтобы нарушать прямую и обратную совместимость версий API не правильно имхо. В статье как раз про переопределение написано.
Можете привести пример версии API, в которой допускается @Override перед onClick (берется в расчет первое определение при реализации интерфейса OnClickListener как в примере урока)?
Я лично только что проверил в 8, 10 и 14 (больше было лень :) ) - везде начинает ругаться:

Код: Выделить всё

The method onClick(View) of type MainActivity must override a superclass method
В принципе логично, если следовать логике ООП и реализации интерфейсов.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 08 ноя 2012, 11:07
rezak90
Override это аннтотация компилятору о том что будет переопределён метод суперкласса. В большей степени зависит от настройки IDE. То есть если вы делаете переопределение скажем метода onResume() без аннотации то не гарантируется на 100% что он будет переопределён. Такая ошибка в основном может быть когда при запущенном приложении идёт звонок и активити переходит в паузу, то потом оно возможно не сможет восстановиться. Вот как то так.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 12 дек 2012, 17:17
v_grechka
Есть 2 активити. Основная и дополнительная.
На основной есть список

Код: Выделить всё

 ListView listContent = (ListView)findViewById(R.id.listContent);
По длинному клику редактируются данные выбранного элемента. Редактирование на 2-й активити.
Пробую при закрытии 2-й активити обновить список и выполнить переход на тот же элемент списка.
Для примера на какой-нибудь элемент(последний)
Пробовал засунуть код перехода в

Код: Выделить всё

    
@Override
    protected void onResume() {
      super.onResume();
      Log.d("LOG_TAG", "MainActivity: onResume()");
      this.listContent.setSelection(15);	
    }
При запуске программа пишет ошибку
12-12 14:11:20.274: E/AndroidRuntime(790): java.lang.RuntimeException: Unable to resume activity {ru.mail.Simplydatabase_1/ru.mail.Simplydatabase_1.Simplydatabase_1Activity}: java.lang.NullPointerException

решил через доп.процедуру

Код: Выделить всё

	private void SelectedPosition(int ip){
		listContent = (ListView)findViewById(R.id.listContent);
		listContent.setSelection(ip);	
 		Toast.makeText(
				getApplicationContext(),
				"Вы выбрали "
						+ Abon_name+" position="+ip,
				Toast.LENGTH_SHORT).show();
	}
и ее вызов в onResume(). Оказывается, переменная listContent , которую мы инициализировали в OnCreate уже не видится в OnResume

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 28 янв 2013, 17:26
Vici
Странно, у меня, когда нажимаю кнопку go to activity two в логах
...
ActivityTwo: onResume()
MainActivity: onPause() (вместо onStop() в вашем примере).
А ещё выходя из приложения пишет не
MainActivity: onPause()
MainActivity: onStop()
MainActivity: onDestroy()
а
MainActivity: onPause()
MainActivity: onPause()
MainActivity: onDestroy()

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 30 янв 2013, 15:26
damager82
Vici писал(а):Странно, у меня, когда нажимаю кнопку go to activity two в логах
А код точно мой скопировали полностью? Поведение очень похоже на ошибку копипаста, если сами код рисовали

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 15:14
Digetix
Здравствуйте. Подскажите, пожалуйста, как правильно сделать: есть активити 1 с картой и активити 2 в текстовым полем и кнопкой. При запуске показывается активити 1, из меню активити 1 можно перейти в активити 2, там кнопка, по которой идёт переход на активити 1 и там указывается место. Сейчас при переходе с кнопки активити 1 пересоздается. Вопрос: как правильно сделать, чтоб при переходе с меню активити 1 ставилась на "паузу", а при переходе с кнопки "возобновлялось"? Если я правильно выразился.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 21:32
rezak90
а как вы делаете переход со второй активити в первую? наверное startActivity?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 22:36
Digetix
rezak90 писал(а):а как вы делаете переход со второй активити в первую? наверное startActivity?
Да.

Код: Выделить всё

Intent intent = new Intent(this, Activity1.class);
startActivity(intent);

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 23:05
rezak90
вы и ответили на свой вопрос))) вы же создаёте новое активити. Убиваете воторую finish(), вторая убъётся и со стека вызовится предыдущая, то есть первая.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 23:13
Digetix
rezak90 писал(а):вы и ответили на свой вопрос))) вы же создаёте новое активити. Убиваете воторую finish(), вторая убъётся и со стека вызовится предыдущая, то есть первая.
Что-то я не понял :) когда я перехожу из 1 на 2, мне 1 нужно убить?
когда из 2 на 1 убить 2 ? :)
Мне нужно из меню 1 перейти в 2, оттуда перейти в 1 взять координаты точки, и с ними потом вернуться в 2 с результатом :)

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 23:18
Digetix
Или когда перехожу из 1 в 2 ничего не убивать, а когда из 2 в 1, то 2 убить? Так? :)
На кнопке в активити 2 такой код?

Код: Выделить всё

Intent intent = new Intent(this, Activity1.class);
startActivity(intent);
finish();

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 23:21
rezak90
так

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 07 фев 2013, 23:39
Digetix
Что не так. При запуске приложения идёт проверка включен ли GPRS.
Переход из 1 в 2

Код: Выделить всё

Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
Переход из 2 в 1

Код: Выделить всё

Intent intent2 = new Intent(this, Activity1.class);
startActivity(intent2);
finish();
При этом при переходе из 2 в 1 снова включается проверка на включение GPRS, я так понимаю, что 1 снова создается.
Или лучше сделать проверки на первый запуск приложения?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 08 фев 2013, 00:26
rezak90
мда...
Переход из 2 в 1:

Код: Выделить всё

finish();
P.S. такой себе вопросик: на телефоне нету кнопки back? :?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 08 фев 2013, 10:53
Digetix
rezak90 писал(а):мда...
Переход из 2 в 1:

Код: Выделить всё

finish();
P.S. такой себе вопросик: на телефоне нету кнопки back? :?
Есть. Мне ж нужно не просто туда-сюда по активити переходить. Мне нужно по кнопке переходить. А вы предлагаете этой кнопкой просто убить её и поднять первую. Или я что-то недопонимаю. Объясню смысл приложения. Запускается первое активити с картой, отображается текущее положения пользователя. В Меню есть кнопка Добавить точку. По ней пользователь переходит на активити 2, там заполняет текстовые поля, добавляет фото и там же есть кнопка указать место на карте, по ней нужно вернуться в карту (то есть активити 1), взять координаты точки и с этими координатами вернуться в 2. А если я убью 2 при возврате в 1, то все текстовые данные уничтожаться. Так?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 08 фев 2013, 12:04
rezak90
А если я убью 2 при возврате в 1, то все текстовые данные уничтожаться. Так?
во второй да, уже данных не будет

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 08 фев 2013, 13:24
Digetix
rezak90 писал(а):
А если я убью 2 при возврате в 1, то все текстовые данные уничтожаться. Так?
во второй да, уже данных не будет
Ну а можно сделать так, чтоб с 1 на 2, с 2 на 1, взять данные, и снова на 2, при этом не плодить активити и данные сохранить?