Android, finish () закрывает приложение в виде активности

Я вызываю действие для результата:

private static final int CODE_LOGIN = 0; private static final int CODE_DETAILS = 1; private void callDetailsActivity() { Intent switchToDetailsActivity = new Intent(getApplicationContext(), Details.class); switchToDetailsActivity.putExtra(TAG_ID, details.get(TAG_ID)); startActivityForResult(switchToDetailsActivity, CODE_DETAILS); } 

Теперь в моем Details.class я звоню, чтобы вернуться к предыдущему действию:

 @Override public void onBackPressed() { setResult(RESULT_OK); super.onBackPressed(); } 

И тогда мой onActivityResult()

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == CODE_LOGIN) { // This is for my other Activity, where the "return" works } } updateOffers(); } 

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

Я также старался не изменять onBackPressed() или просто писать finish() в onBackPressed() , но ничего не работало.

Я не установил android:noHistory="true"

С моей другой Activity (которая использует excatly тот же самый код), она отлично работает (CODE_LOGIN).

Может кто-нибудь мне помочь?

Измените setResult(RESULT_OK, returnToOffers); setResult(RESULT_OK); И избавиться от намерения returnToOffers. Я также рекомендую заменить finish() на super.onBackPressed() для будущей совместимости.

Как если бы в Android Lik-M-Aid (или что бы то ни было в следующей версии), они решают сделать какой-то особый эффект красного свечения, когда пользователь отменяет действие с помощью кнопки «Назад», вам не нужно будет обновлять приложение для его поддержки ,

Возможно, вы объявили первую активность как андроид: noHistory = "true" в AndroidManifest?

Я нашел свою ошибку. Где-то глубоко в моем коде я случайно вызвал финиш (), поэтому в глобальном я назвал finish () дважды, что приводит к закрытию приложения.

Спасибо за помощь и совет по использованию super.onBackPressed ()

Intereting Posts