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