Java 异步任务使应用程序崩溃

Java 异步任务使应用程序崩溃,java,android,database,android-asynctask,Java,Android,Database,Android Asynctask,我正在尝试使用.php联系我的数据库 第一次运行异步时,它工作正常,但第二次运行(不退出应用程序)时,应用程序崩溃(无法捕获来自LogCat的错误消息) 而且由于某种原因,它根本不会进入while循环。我以前写过很多这样的代码,结果都很好,不过这次不是 代码: 类加载\u用户扩展异步任务 { //互联网输入 网址; 输入流为; 输入流读卡器iSR; 缓冲读取器r; //变数 列表用户=新建ArrayList(); 公共字符串s=“”; 公共字符串下载\u SUCCESS=“fail”; 字符串c

我正在尝试使用.php联系我的数据库 第一次运行异步时,它工作正常,但第二次运行(不退出应用程序)时,应用程序崩溃(无法捕获来自LogCat的错误消息)

而且由于某种原因,它根本不会进入while循环。我以前写过很多这样的代码,结果都很好,不过这次不是

代码:

类加载\u用户扩展异步任务
{
//互联网输入
网址;
输入流为;
输入流读卡器iSR;
缓冲读取器r;
//变数
列表用户=新建ArrayList();
公共字符串s=“”;
公共字符串下载\u SUCCESS=“fail”;
字符串charset=“iso-8859-1”;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(MenuActivity.this);
pDialog.setMessage(“Letar efter spelare”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@凌驾
受保护的空白背景(字符串…sUrl){
试一试{
url=新url(sUrl[0]);
iS=url.openStream();
iSR=新的InputStreamReader(iS,字符集);
r=新的缓冲读取器(iSR);
user.clear();
而((s=r.readLine())!=null)
{
用户。添加;
下载_SUCCESS=“SUCCESS”;
}
}捕获(例外e)
{
Log.e(e.toString(),e.toString());
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果)
{
super.onPostExecute(结果);
pDialog.disclose();
如果(下载_SUCCESS.equalsIgnoreCase(“SUCCESS”))
{
MenuActivity.this.CheckValidation();
}
else if(下载\u SUCCESS.equalsIgnoreCase(“fail”))
{
Toast.makeText(getBaseContext(),“检查您的Internet连接”,Toast.LENGTH_SHORT.show();
}
DownloadComplete=true;
}
}

如果你能抓住我的错误,那就太好了。谢谢大家!

我猜异步任务创建为只运行一次,这意味着您需要创建类的新实例。

来自(线程规则部分):

该任务只能执行一次(如果尝试第二次执行,将引发异常)


为什么您不能从logcat中捕获错误?谢谢您,先生,崩溃不再有问题:)但是我的while循环仍然有问题。正如我提到的,它不会进入。我认为这是一个语法问题,尽管不确定。谢谢您,先生,崩溃不再有问题:)
class LOAD_USERS extends AsyncTask<String, Void, Void>
{
    //Internet Input
    URL url;
    InputStream iS;
    InputStreamReader iSR;
    BufferedReader r;

    //Variables
    List<String> Users = new ArrayList<String>();
    public String s = "";
    public String DOWNLOAD_SUCCESS = "fail";
    String charset = "iso-8859-1";

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(MenuActivity.this);
        pDialog.setMessage("Letar efter spelare");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    @Override
    protected Void doInBackground(String... sUrl) {
        try{
            url = new URL(sUrl[0]);
            iS = url.openStream();
            iSR = new InputStreamReader(iS, charset);
            r = new BufferedReader(iSR);

            Users.clear();

            while((s = r.readLine()) != null)
            {
                Users.add(s);
                DOWNLOAD_SUCCESS = "success";
            }
        }catch(Exception e)
        {
            Log.e(e.toString(),e.toString());
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result)
    {
        super.onPostExecute(result);
        pDialog.dismiss();
        if(DOWNLOAD_SUCCESS.equalsIgnoreCase("success"))
        {
            MenuActivity.this.CheckValidation();
        }
        else if(DOWNLOAD_SUCCESS.equalsIgnoreCase("fail"))
        {
            Toast.makeText(getBaseContext(), "Check Your Internet Connection",   Toast.LENGTH_SHORT).show();
        }

        DownloadComplete = true;
    }
}