Скажем, у нас есть два вида деятельности: Activity1 и Activity2.android - Как показать диалог после завершения операции
В OnClick Activity1 в() метод, у нас есть вызов, чтобы начать активность 2, если определенная кнопка нажата:
Intent myIntent = new Intent(Activity1.this, Activity2.class);
Activity1.this.startActivity(myIntent);
После завершения() вызывается в деятельности2 и Activity1 возобновляется, мне нужно чтобы показать в Activity1, как только он будет возобновлен.
Раньше я просто назвал ShowDialog (идентификатор) в том же блоке OnClick Activity1 (в) метод:
public void onClick(View v) {
if(v == addHole){
//...
Intent myIntent = new Intent(Activity1.this, Activity2.class);
Activity1.this.startActivity(myIntent);
showDialog(END_DIALOG_ID);
}
}
Этот вопрос, после того, как Activity1 резюме, диалог, соответствующий END_DIALOG_ID не видно, но экран затемнен и не реагирует (как будто диалог присутствовал), пока не будет нажата задняя клавиша.
Я попытался поставить вызов showDialog() в методы onResume() и onRestart() Activity1, но оба они врезались в программу.
Я также попытался создать метод AsyncTask в Activity2 с вызовом showDialog() в onPostExecute(), но диалог не отображается в Activity2.
private class ShowDialogTask extends AsyncTask<Void, Void, Integer> {
/** The system calls this to perform work in a worker thread and
* delivers it the parameters given to AsyncTask.execute() */
protected Integer doInBackground(Void... id) {
//do nothing
return END_DIALOG_ID;
}
/** The system calls this to perform work in the UI thread and delivers
* the result from doInBackground() */
protected void onPostExecute(Integer id) {
super.onPostExecute(id);
showDialog(id);
}
}
Я сейчас пытаюсь осуществить это путем вызова
Activity1.this.startActivityForResult(myIntent, END_DIALOG_REQUEST);
с соответствующей setResult() и onActivityResult() методами из Activity1, но мне кажется, что там должна быть лучшей практикой для реализации этого. Все, что мне нужно - это показать диалог, показанный после завершения Activity2.
Спасибо за любую помощь, которую вы можете предоставить.
Я собирался предложить startActivityForResult и onActivityResult, но вы, кажется, обнаружили его самостоятельно. Для меня это самый простой способ добиться того, чего вы хотите. – mportuesisf