Java AsyncTask有错误-初学者
最后,我希望这个方法在文本文档中查找一些值,并返回用户名和密码的true。但是,我在实现异步任务时遇到了一些问题。我曾试着按照导游的指示去做,但没有成功 我在doInBackground方法的返回类型上得到的错误是“返回类型与AsyncTask.doInBackground(字符串[])不兼容”Java AsyncTask有错误-初学者,java,android,android-asynctask,Java,Android,Android Asynctask,最后,我希望这个方法在文本文档中查找一些值,并返回用户名和密码的true。但是,我在实现异步任务时遇到了一些问题。我曾试着按照导游的指示去做,但没有成功 我在doInBackground方法的返回类型上得到的错误是“返回类型与AsyncTask.doInBackground(字符串[])不兼容” private-class AuthenticateUser扩展异步任务 { 字符串用户; 串通; 受保护的void onPreExecute(字符串uname、字符串passwd) { 用户=unam
private-class AuthenticateUser扩展异步任务
{
字符串用户;
串通;
受保护的void onPreExecute(字符串uname、字符串passwd)
{
用户=uname;
pass=passwd;
}
受保护的布尔doInBackground(字符串…字符串)
{
返回true;
}
受保护的布尔值onPostExecute(布尔值v)
{
返回v;
}
}
我知道这根本不是验证用户身份的好方法。我只是想弄明白。谢谢
new AuthenticateUser().execute(username, password);
private-class AuthenticateUser扩展异步任务
{
字符串用户;
串通;
受保护的布尔doInBackground(字符串…字符串)
{
this.user=字符串[0];
this.pass=字符串[1];
//奥森
返回true;
}
受保护的void onPostExecute(布尔结果)
{
//在成功验证后执行这些操作
}
}
这里的问题是,AsyncTask扩展是泛型的,需要三种类型:AsyncTask
,它们可能是Void或类,但不是基本数据类型
因此,您告诉编译器doInBackground返回一个基本布尔值,但它需要一个布尔类的实例。因此会出现“返回类型不兼容”错误
只需将
受保护的布尔doInBackground(字符串…字符串)
更改为受保护的布尔doInBackground(字符串…字符串)
你应该很好。你是否试图覆盖doInBackground
异步任务的AsyncTask
方法?只需将override
放在doInBackground
之前,这将根据传入的AsyncTask
参数自动给出doInBackground
方法的默认结构protected boolean-doInBackground(String…strings)
toprotected boolean-doInBackground(String…strings)
使用类boolean而不是原始boolean。感谢Oren对其进行排序。然而,我有另一个错误,我忘了提到。我正在获取AuthenticateUser时无法将其解析为类型:new AuthenticateUser.execute(“);即使AuthentcateUser是一个子类,我也要这样做吗?私有类AuthenticateUser
的私有部分可能与此有关。可能会对您有所帮助。请注意,asynctask的类是私有的,因为它位于另一个公共类的作用域中。您可以遵循该设计,或者只需使您的AuthenticateUser
class public(取决于您的预期使用)。旁注:如果堆栈溢出问题的答案对您有所帮助,您应该接受它,这样它也可以帮助其他人。
new AuthenticateUser().execute(username, password);
private class AuthenticateUser extends AsyncTask<String, Void, Boolean>
{
String user;
String pass;
protected Boolean doInBackground(String... strings)
{
this.user = strings[0];
this.pass = strings[1];
//authen
return true;
}
protected void onPostExecute(Boolean result)
{
//do stuff when successfully authenticated
}
}