threadpolicy sa nedotykajte ked neviete co robite. vlastne cele je to o tom ze prasit thready je ako strihat si vlasy cirkularom
asynctask pouzivate zle. volate na tom tu vasu metodu ktora sa spusti v ui threade co vam android nedovoli. prakticky ste nepouzili nic z asynctasku
riesenie je volat execute(). ta spawne novy thread ktory spusti na pozadi doinbackground()
v metode onPostExecute() v asynctasku aktualizujte ui s vysledkami co vam dojdu
public void onButtonClick(View v) {
PhpRequestData request = new PhpRequestData();
request.execute();
}
pozrite example http://developer.android.com/reference/android/os/AsyncTask.html
dalsia vec namiesto parsovania stringu z odpovede cez bufferedreadery skuste EntityUtils.toString() usetrite si tony kodu
Dekuji...
Tridu jsem trosku zmenil
public class phprequestdata extends AsyncTask<String,String,String>{
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
String results="Empty";
@Override
public String doInBackground(String... params) {
justdoit();
return null;
}
public String justdoit (){
HttpGet httpGet = new HttpGet("https://server.com/test.php");
HttpResponse response = null;
try {
response = client.execute(httpGet);
} catch (IOException e) {
e.printStackTrace();
}
HttpEntity entity = response.getEntity();
InputStream content = null;
try {
content = entity.getContent();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
try {
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
setData(builder.toString());
return null;
}
public void setData(String a){
results = a;
}
public String showdata(){
return results;
}
}
Volani ted provadim nasledovne:
phprequestdata test = new phprequestdata();
test.execute();
V tomhle okamziku vidim, ze aplikace hrabla na server. Pokud ale volam
String results;
results = test.showdata();
Dostavam, ze results uvnitr tridy jsou stale Empty, tedy vychozi hodnota a nemuzu prijit na to proc se do ni neulozi data ze serveru.