java - AsyncTask 使应用程序崩溃

标签 java android database android-asynctask

我正在尝试使用 .php 联系我的数据库 ASYNC 第一次运行时它工作正常,但我第二次运行它(没有退出应用程序)应用程序崩溃(无法从 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;
    }
}

如果你能发现我的错误,那就太好了。谢谢!

最佳答案

来自AsyncTask documentation (线程规则部分):

The task can be executed only once (an exception will be thrown if a second execution is attempted.)

关于java - AsyncTask 使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101352/

相关文章:

android - 关于安卓上下文

javascript - SailsJS - 动态更改数据库名称

sql - KQL 如何在 mv-apply 后合并结果行以获得正确的计数

java - 将文本数学方程式转换为数字和符号

c# - 从 SQL Server 数据库中插入和选择日期

java - 如何在发送到使用该读取器的方法之前解析 Java 中的读取器

java - 动态设置 fragment

java - C++ 和 Java : Use of virtual base class

java - Java 6 的嵌入式版本?

android - 为 shamu (Nexus 6) 构建 Android