我想发送电子邮件使用异步方法如下所示,一切工作正常。显示对话框在异步任务
这是我的异步代码:
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)
{
}
在如果邮件没有发送我得到举杯为上面的代码“邮件发送”而如果不发送电子邮件,我会得到“电子邮件未发送”
1)代替敬酒,我想显示一个对话框。
2)我已经做到了onPostExecute
它工作正常。
但是问题来了。假设没有互联网连接,并且用户点击了按钮“To Not Not Send”,并在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
只需删除“吐司”即可。你说''Dialog'代码在你的'onPostExecute()'所以我没有看到问题 – codeMagic