Я вызываю действие для результата:
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 ()