Я пытаюсь отправить электронную почту, используя метод асинхронного, как показано ниже, и все работает нормально ..диалога Отображения в асинхронной задаче
Теперь я хотел бы, чтобы отобразить диалог по электронной почте преуспевающей.
Это мой асинхронной код:
public void sending(View v) {
try {
LongOperation l=new LongOperation();
l.execute();
Toast.makeText(this, l.get(), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.e("SendMail", e.getMessage(), e);
}
}
public class LongOperation extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
try{GMailSender sender = new GMailSender("[email protected]","Pwd");
sender.sendMail("Sub",
"body",
"sender",
"recepient");
}
catch(Exception e){Log.e("error",e.getMessage(),e);return "Email Not Sent";}
return "Email Sent";
}
@Override
protected void onPostExecute(String result)
{
}
@Override
protected void onPreExecute()
{
}
@Override
protected void onProgressUpdate(Void... values)
{
}
В приведенном выше коде, если почта не отсылается я получаю тост как «Письмо отправлено» и если не отправить по электронной почте я получил бы «Email Not Sent»
1) Вместо тостов я хотел бы отобразить диалоговое окно.
2) Я сделал это в onPostExecute
, и он отлично работал.
Но здесь возникает проблема. Предположим, что если нет подключения к интернету, и пользователь нажимает кнопку как тост «Электронная почта не отправляется», а диалог отображается после метода onPostExecute.
Мне бы только хотелось отобразить диалог.
Так как я могу изменить приведенный выше код для удаления тостов и получить диалог для успешного и неуспешного электронного письма.
Вот мой диалог код:
new AlertDialog.Builder(MainActivity.this)
.setTitle("Info")
.setMessage("Sample message.")
.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Log.d("AlertDialog","Positive");
}}).show();
Я смущен. Если вы не хотите, чтобы «Тост» показывал тогда, почему бы вам не принять это? Какая проблема? – codeMagic
Этот код я взял из другого приложения, но я новичок в этой концепции Android. Так вы можете показать мне, как это сделать? – coder
Просто удалите «Toast». Вы сказали, что код «Диалог» находится в вашем 'onPostExecute()', поэтому я не вижу проблемы – codeMagic