Возврат из диалоговой активности в MainActivity
У меня есть эта проблема, я запускаю Activity как диалог с атрибутом android:theme="@android:style/Theme.Dialog"
пока все хорошо, когда я запускаю эту активность, я хочу, чтобы пользователь заполнил EditText
S, а затем нажмите кнопку, где будет запущен фоновый процесс, теперь я использую this.setFinishOnTouchOutside(false);
чтобы пользователь не нажимал снаружи и finish()
моя проблема в том, что я не понимаю, как finish()
в частности, это DialogLikeActivity, когда я звоню finish()
после запуска фонового процесса приложение закрывается, и я хочу вернуться к MainActivity или Activity, которая запустила DialogLikeActivity (MainActivity все еще видна после startActivity
или же startActivityForResult()
вызывается для DialogLikeActivity, вот что я получил:
Код от MainActivity:
Intent intent = new Intent(this, DialogLikeActivity.class);
startActivityForResult(intent,0);
и код кнопки в DialogLikeActivity:
public void saveClient(View view){
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
}
Наверное, моя проблема в том, что MainActivity не является родителем DialogLikeActivity, в таком случае так и должно быть? как сделать DialogLikeActivity дочерним по отношению к MainActivity и если я достигну этого, то вызову finish()
в DialogLikeActivity завершить саму активность, а не приложение?
Заранее спасибо и извините за мой английский.
РЕДАКТИРОВАТЬ:
это действие отображается в виде диалогового окна над MainActivity
1 ответ
Это звучит как DialogFragment
может лучше удовлетворить ваши потребности здесь. У него есть методы жизненного цикла, аналогичные Activity
и может запускать фоновые задачи внутри себя, но фактически управляется активностью, к которой он прикреплен. Есть несколько типов, которые вы можете использовать.
Проверьте документацию Google на этом ЗДЕСЬ.