Подтвердить что ты не робот

Вернуться к активности после того, как действие завершено в Android?

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

Вот как я вызываю приложение SMS с результатом.

String message = getMessageString();
    Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
    sendIntent.setData(Uri.parse("sms:" + number));
    sendIntent.putExtra("sms_body", message);
    startActivityForResult(sendIntent, INVITE_COMPLETED);
4b9b3361

Ответ 1

Это возможно. Просто добавьте следующие дополнительные для своих целей:

sendIntent.putExtra("exit_on_sent", true);

Ответ 2

Как только действие, которое вы начали, будет завершено, вызывается метод onActivityResult() в вашем первом действии. Вот почему вы должны перезаписать onActivityResult() в своем первом действии и обработать там завершенные действия.

Ответ 3

Вы ошибались, возможно, вы, возможно, не заметили, что вернулись в вызывающую деятельность. Вы должны указать код запроса при вызове субактивности. INVITE_COMPLETED немного напоминает, что он может представлять собой код результата. Коды результатов, такие как RESULT_OK и RESULT_CANCELED, являются предопределенными финалами класса Activity. Если вы используете

startActivityForResult(intent, MY_REQUEST_CODE);

вы можете затем переопределить onActivityResult() и уловить этот код запроса (который сам определяется в начальном действии). Это выглядит так:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == MY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
        // do something useful
        }
    }
}