wha*_*ide 1 android android-asynctask
我知道这个问题已被多次询问,但我有一个显然干净的代码,但是没有用,给我没有例外或任何东西.
我有一个简单的一键Activity(MainActivity).其中的按钮调用AsyncTask以便在后台发送电子邮件.我试着去做我认为这是很常见的事情:显示ProgressDialog任务开始的时间并在结束时解除它.为此,我将上述代码放入AsyncTask.onPreExecute()和AsyncTask.onPostExecute().我认为问题出现在Context提供给对话框构造函数中,但我为我创建了一个简单的构造函数,我AsyncTask将其传递给应用程序上下文.我添加了一个简单Toast的调试,但它没有显示...
这是按钮onClick方法的代码:
public void onClick(View v) {
new Sender(this).execute("args");
}
Run Code Online (Sandbox Code Playgroud)
这是任务的代码:
private class Sender extends AsyncTask<String, Void, Void> {
private ProgressDialog progDialog;
private Context context;
public Sender(Context context) {
this.context = context;
}
@SuppressWarnings("unused")
protected void onPreExecute(Void... params) {
Toast.makeText(this.context, "Sending...", Toast.LENGTH_SHORT).show();
progDialog = ProgressDialog.show(this.context, "Sending", "Picture is being sent...", true);
}
protected Void doInBackground(String... mailSubj) {
// some code that works
return null;
}
@SuppressWarnings("unused")
protected void onPostExecute(Void... v) {
progDialog.dismiss();
Toast.makeText(MainActivity.this, "Mail sent", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |