Pracuję właśnie nad kodem odpowiedzialnym za pobieranie strony internetowej w osobnym wątku czyli asynchronicznie.
Utworzyłem klasę rozszerzającą Thread i umieściłem w niej te 3 metody:
private String ReadHTML(URL url, HttpMethod method)
{
HttpURLConnection con;
BufferedReader reader = null;
InputStream inputStream = null;
OutputStream outputStream = null;
InputStreamReader inputStreamReader = null;
StringBuffer content = null;
try
{
con = ((HttpURLConnection)url.openConnection());
inputStream = con.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
reader = new BufferedReader(inputStreamReader);
content = new StringBuffer();
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append("\n");
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try {
inputStream.close();
inputStreamReader.close();
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public void run()
{
try
{
this.ReadHTML(url, HttpMethod.GET);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
public void cancelAsync()
{
// i co tutaj napisać?
}
Jak wiadomo, żeby pobrać kod wywołujemy metodę start() na obiekcie tej klasy.
A jak taką metodę zatrzymać? Oczywiście metodą cancelAsync()
Tylko pytanie: co wpisać w tej metodzie, aby zatrzymać pobieranie kodu strony? Używałem już stop(), interrupt(), destroy() no i nic nie przynosi efektów :( Szukałem także na próżno jakieś metody w HttpURLConnection typu abort().. też nic. Cóż by tu zrobić?