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端显示

[Python网络编程]浅析守护进程后台任务的设计与实现

ios后台和android后台区别 iOS/Android系统多任务浅析

后台 Javascript 或 Cordova 应用程序中的计时器任务

从后台任务中更新android UI

多个操作的后台任务 - Android