Java Can';无法在AsyncTask中运行onPostExecute,可能会';我也不知道该怎么做
我正在为我的一个班级设计一个应用程序。该应用程序的目标是连接到具有给定HTML的网站,并提取特定文件。根据输入选择此文件,并创建一个新的“活动”,以便在用户单击“显示”按钮时显示数据 我的老师希望我们使用AsyncTask从html中提取数据,然后创建新的活动。我以前从未遇到过AsyncTask的问题,但现在我无法运行onPostExecute。我把测试人员放在onPostExecute中,但他们从未运行过,所以我认为我的doInBackground就是问题所在。我还没有找到解决我问题的答案 这是我的代码,问题发生在底部(是的,我有一个新的xml和java用于新活动,它在我的清单中)Java Can';无法在AsyncTask中运行onPostExecute,可能会';我也不知道该怎么做,java,android,android-asynctask,Java,Android,Android Asynctask,我正在为我的一个班级设计一个应用程序。该应用程序的目标是连接到具有给定HTML的网站,并提取特定文件。根据输入选择此文件,并创建一个新的“活动”,以便在用户单击“显示”按钮时显示数据 我的老师希望我们使用AsyncTask从html中提取数据,然后创建新的活动。我以前从未遇到过AsyncTask的问题,但现在我无法运行onPostExecute。我把测试人员放在onPostExecute中,但他们从未运行过,所以我认为我的doInBackground就是问题所在。我还没有找到解决我问题的答案 这
私有类下载文件任务扩展异步任务{
@凌驾
受保护的void onPreExecute(){
Context=getApplicationContext();
CharSequence text=“拉取数据”;
int duration=Toast.LENGTH\u SHORT;
Toast Toast=Toast.makeText(上下文、文本、持续时间);
toast.show();
}
受保护的整数doInBackground(URL…URL){
URL=URL[0];
int complete=0;
HttpURLConnection-urlConnection=null;
试一试{
urlConnection=(HttpURLConnection)url.openConnection();
InputStream in=urlConnection.getInputStream();
InputStreamReader isw=新的InputStreamReader(in);
int data=isw.read();
while(数据!=1){
当前字符=(字符)数据;
data=isw.read();
dataToPass+=当前数据;
}
}
捕获(例外e)
{
e、 printStackTrace();
}
最后{
if(urlConnection!=null)
urlConnection.disconnect();
如果(!dataToPass.equals(“”)
完整=1;
返回完成;
}
}
@凌驾
受保护的void onPostExecute(整数结果){
super.onPostExecute(结果);
如果(结果==1){
Context=getApplicationContext();
CharSequence text=“结果=1”;
int duration=Toast.LENGTH\u SHORT;
Toast Toast=Toast.makeText(上下文、文本、持续时间);
toast.show();
意向意向=新意向(HomeScreen.this,Stock_Data.class);
intent.setFlags(intent.FLAG\u活动\u新任务);
意向.额外支出(库存数据、dataToPass);
星触觉(意向);
}
其他的
{
Context=getApplicationContext();
CharSequence text=“结果!=1”;
int duration=Toast.LENGTH\u SHORT;
Toast Toast=Toast.makeText(上下文、文本、持续时间);
toast.show();
TextView homeMessage=(TextView)findViewById(R.id.homeMessage);
homeMessage.setText(“包含数据的网站不可用或不存在。”+
“\n请输入:”+
“\n!-英特尔”+
“\n~-Microsoft”);
}
}
}
具有给定HTML的网站,
。对不起,那是胡说八道。请重读老师所说的。一个带有给定HTML的网站,
。对不起,那是胡说八道。请重读你老师说的话。
private class DownloadFilesTask extends AsyncTask<URL, Void, Integer> {
@Override
protected void onPreExecute() {
Context context = getApplicationContext();
CharSequence text = "Pulling Data";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
protected Integer doInBackground(URL... urls) {
URL url = urls[0];
int complete = 0;
HttpURLConnection urlConnection = null;
try {
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader isw = new InputStreamReader(in);
int data = isw.read();
while (data != 1) {
char current = (char) data;
data = isw.read();
dataToPass += current;
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
if (urlConnection != null)
urlConnection.disconnect();
if (!dataToPass.equals(""))
complete = 1;
return complete;
}
}
@Override
protected void onPostExecute(Integer result) {
super.onPostExecute(result);
if(result == 1) {
Context context = getApplicationContext();
CharSequence text = "Result = 1";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
Intent intent = new Intent(HomeScreen.this, Stock_Data.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(STOCK_DATA, dataToPass);
startActivity(intent);
}
else
{
Context context = getApplicationContext();
CharSequence text = "Result != 1";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
TextView homeMessage = (TextView) findViewById(R.id.homeMessage);
homeMessage.setText("The website containing the data is unavailable or does not exist." +
"\nPlease enter:" +
"\n! - Intel" +
"\n~ - Microsoft");
}
}
}