завершить действие из пользовательского представления с помощью контекста

Вот мой код:

    private void makeDialog2() {
    AlertDialog.Builder about = new AlertDialog.Builder(getContext());
    about.setTitle("You Won!");

    about.setPositiveButton("Play Again",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                    Intent playIntent2 = new Intent(getContext(),
                            PracticePlayActivity.class);
                    playIntent2.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                    getContext().startActivity(playIntent2);
                    ((Activity) getContext()).finish();
                }
            });

    about.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface arg1, int arg2) {
            Intent playIntent = new Intent(getContext(),
                    PlayChooserActivity.class);
            playIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            getContext().startActivity(playIntent);
            ((Activity) getContext()).finish();
        }
    });

    about.show();
}

Этот код запрашивается, когда пользователь проигрывает игру и хочет повторить попытку. Однако, когда я нажимаю "повторить" более 4 раз, приложение вылетает. Я подозреваю утечку памяти. После некоторого тестирования в logcat мне удалось выяснить, что действие все еще выполняется после повторной попытки.

Мой план состоит в том, чтобы решить эту проблему двумя способами. Переработка моих чертежей и завершение первого действия как в целом. Однако первое действие не закрывается даже после того, как я вызываю команду finish. Любая помощь? (Использование getContext () в других частях моего кода до сих пор работало).

РЕДАКТИРОВАТЬ: Завершение действия уничтожает ли переменные автоматически? или мне все еще нужно очистить растровые изображения из памяти Android? Есть идеи, как я могу это сделать?

5
задан user1012016 21 December 2011 в 08:31
поделиться