最终,我希望此方法在文本文档中查找一些值,并在用户名和密码存在的情况下返回 true。但是我在实现 AsyncTask 时遇到了一些问题。我已尝试按照 http://developer.android.com/reference/android/os/AsyncTask.html 上的指南进行操作但没有成功。
我在 doInBackground 方法的返回类型处遇到的错误是“返回类型与 AsyncTask.doInBackground(String[]) 不兼容”
private class AuthenticateUser extends AsyncTask<String, Integer, Boolean>
{
String user;
String pass;
protected void onPreExecute(String uname, String passwd)
{
user = uname;
pass = passwd;
}
protected boolean doInBackground(String... strings)
{
return true;
}
protected boolean onPostExecute(boolean v)
{
return v;
}
}
我知道这根本不是验证用户身份的好方法。我只是想弄清楚这一点。谢谢。
最佳答案
这里的问题是 AsyncTask Extensions 是通用的,需要三种类型:AsyncTask<Params, Progress, Result>
它可以是 Void 或一个类,但不是原始数据类型。
所以发生的事情是您告诉编译器 doInBackground 返回一个原始 boolean 值,但它期待一个 Boolean 类的实例。因此你会得到“返回类型不兼容”的错误。
只需更改 protected boolean doInBackground(String... strings)
至 protected Boolean doInBackground(String... strings)
你应该没事。
关于java - AsyncTask 有错误 - 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920483/