Вот мой код:
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? Есть идеи, как я могу это сделать?