2013-08-30 3 views
0

Будучи относительно новым для Android, я думаю, что не правильно сформулировал свой вопрос. Вот что я пытаюсь сделать. Обычно, когда вы начинаете новое намерение, вы завершаете старую активность с помощью class.this.finish(). Но я хочу закончить другой класс, а не текущий класс. Допустим, у меня есть активность с помощью кнопки. Нажатие на кнопку приведет меня ко второму действию. Теперь нажатие на другую кнопку приводит меня к третьему действию и одновременно завершает первое действие. Вероятно, это ключевое слово здесь, а не убить.Как убить активность из другого класса?

+0

Примитивное решение: статические вары с соответствующей проверкой ... – tilpner

+1

Статические вары Hahaha с ссылкой на активность - это глупая идея – Selvin

+0

@Selvin: Это обходной путь и опасен, если не используется соответствующим образом. Это уродливое решение, я согласен, но это лучше, чем никто (вы его не писали) ... – tilpner

ответ

2

У вас может быть BroadcastReceiver, зарегистрированный в первой активности, и отправка трансляции с третьего действия. Затем в onReceive() метод приемника finish() активность.

Однако переосмысление дизайна может быть лучшим решением.

+0

Плохая идея ... вы должны отменить регистрацию ресивера в Activity onStop .. поэтому, если Activity1 не самый лучший, у него не должно быть зарегистрированного редизера – Selvin

+0

@Selvin Я согласен, поэтому я предложил переосмыслить дизайн, было бы лучшим решением. –

2

Это вопрос, который не имеет прямого ответа. Действия по убийству не являются хорошим дизайном для Android, поэтому моя первая мысль - «не делай этого». Конечно, это не очень полезно.

Возможно, мы сможем помочь, если вы опишете, что вы пытаетесь сделать. Мы можем предложить альтернативу, которая не требует убийства Activity или позволяет одному Управлению заканчивать другим более «одобренным» способом.

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

+0

Будучи относительно новым для Android, я думаю, что не правильно сформулировал свой вопрос. Вот что я пытаюсь сделать. Обычно, когда вы начинаете новое намерение, вы завершаете старую активность с помощью 'class.this.finish()'. Но я хочу закончить другой класс, а не текущий класс. Допустим, у меня есть активность с помощью кнопки. Нажатие на кнопку приведет меня ко второму действию. Теперь нажатие на другую кнопку приводит меня к третьему действию и одновременно завершает первое действие. Вероятно, 'finish' - это ключевое слово здесь, а не' kill'. – Anish

+0

'Обычно, когда вы начинаете новое намерение, вы завершаете старую активность с помощью class.this.finish() ...« Я очень сомневаюсь, что это обычная практика в Android. Жизненный цикл жизни лучше всего для Android. –

Смежные вопросы