Android编程,后台任务中的后台任务(Context)不能应用于()
Posted
技术标签:
【中文标题】Android编程,后台任务中的后台任务(Context)不能应用于()【英文标题】:Android programming, Background task (Context) in background task cannot be applied to () 【发布时间】:2016-04-29 15:15:35 【问题描述】:我需要一些帮助来解决这个问题,它以前可以工作,但是在更改了几个代码之后,这可能是一个问题。也许是因为我从片段转换到活动。
btnRegister.setOnClickListener(new android.view.View.OnClickListener()
@Override
public void onClick(android.view.View v)
if (name.getText().toString().equals("") || email.getText().toString().equals("") || pw.getText().toString().equals(""))
android.app.AlertDialog.Builder alertDialogBuilder =
new android.app.AlertDialog.Builder(Register.this);
alertDialogBuilder.setTitle("Something went wrong");
alertDialogBuilder.setMessage("Please check and fill in all the fields");
alertDialogBuilder.setPositiveButton("Ok", new android.content.DialogInterface.OnClickListener()
public void onClick(android.content.DialogInterface dialog, int which)
dialog.dismiss();
);
//displaying of alert dialog
android.app.AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
//checking pw and confirm pw
else if (!pw.getText().toString().equals(pwConf.getText().toString()))
android.app.AlertDialog.Builder alertDialogBuilder =
new android.app.AlertDialog.Builder(Register.this);
alertDialogBuilder.setTitle("Something went wrong");
alertDialogBuilder.setMessage("Your passwords are not matching");
alertDialogBuilder.setPositiveButton("Ok", new android.content.DialogInterface.OnClickListener()
public void onClick(android.content.DialogInterface dialog, int which)
dialog.dismiss();
pw.setText("");
pwConf.setText("");
);
android.app.AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
else
BackgroundTask backgroundTask = new BackgroundTask();
backgroundTask.execute("register", name.getText().toString(), email.getText().toString(), pw.getText().toString());
);
是的,所以在后台任务=新后台任务的设置下,它显示错误“后台任务中的后台任务(上下文)无法应用于()。
这是我的后台任务类。
public class BackgroundTask extends android.os.AsyncTask<String, Void, String>
android.content.Context ctx;
android.app.Activity activity;
android.app.ProgressDialog progressDialog;
String register_url = "http://10.0.2.2/mydb/register.php";
android.app.AlertDialog.Builder builder;
public BackgroundTask(android.content.Context ctx)
this.ctx = ctx;
activity = (android.app.Activity)ctx;
【问题讨论】:
lightbuild 还帮助我删除了构造函数中的第一个参数,即 Context ctx。 【参考方案1】:您的构造函数需要一个上下文。改变
BackgroundTask backgroundTask = new BackgroundTask();
到
BackgroundTask backgroundTask = new BackgroundTask(getActivity());
【讨论】:
以上是关于Android编程,后台任务中的后台任务(Context)不能应用于()的主要内容,如果未能解决你的问题,请参考以下文章
通过AsyncTask访问后台后得到的返回数据在Android端显示
ios后台和android后台区别 iOS/Android系统多任务浅析