2012-01-17 10 views
0

Я перехожу из Activity A в Activity B и наоборот, в Activity A у меня есть кнопка выхода, когда я нажимаю exit, она не выходит, я должен нажать два раза для выхода из приложения, когда я возвращаюсь из Activity B в Activity A. , пожалуйста, помогитеAndroid: не удалось выйти одним щелчком мыши

+0

кнопку Выход? Вы имеете в виду кнопку «Назад»? – Codeman

+0

опубликуйте функцию обратного вызова кнопки «Выход». – hovanessyan

+0

У меня есть одна кнопка, имя которой завершено, и я пишу на его окончании события click(); – Mitt

ответ

1

Какую функцию вы звоните, чтобы выйти?

С Android, если вы переходите от одной операции к другой, они попадают в стек, поэтому, например, при использовании кнопки «Назад» она просто выдает активность сверху.

Для некоторых дискуссий относительно того, как вы можете справиться с этим вы можете посмотреть на этот вопрос: How to dismiss previous activities in android at a certain point?

Или это может быть лучший вопрос: Closing several android activities simultaneously

+0

спасибо, что он работал .. – Mitt

1

Это означает, что в памяти имеется несколько экземпляров вашей активности. Если вы хотите закрыть все из них, вы можете зарегистрировать широковещательный приемник в onResume, и этот широковещательный приемник будет называть finish() для активности. Ваша кнопка выхода посылает широковещательное намерение, что этот приемник получает

что-то вроде следующего ...

, определенное в вашей деятельности:

BroadcastReceiver activityKillerOnTheLoose = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 
    } 
}; 

в вашем onResume метода (зарегистрироваться для получения передач)

@Override 
public void onResume() 
{ 
    super.onResume(); 

    registerReceiver(
      activityKillerOnTheLoose, 
      new IntentFilter(ActivityKillerBroadcastKey)); 

в вашем OnPause (убедитесь, что для отмены регистрации!)

@Override 
public void onPause() 
{ 
    super.onPause(); 
    unregisterReceiver(activityKillerOnTheLoose); 

и вещать ...

Intent activityKillerBroadcast = new Intent(ActivityKillerBroadcastKey); 
sendBroadcast(activityKillerBroadcast); 
+1

+1 - Мне действительно нравится эта идея использования широковещательного приемника. Я никогда не рассматривал это как решение. Спасибо. –

+0

Спасибо, что это сработало для меня .. – Mitt