Когда я написал этот код, он дает NetworkOnMainThreadException
, поэтому я хочу его реализовать, используя AsyncTask
Хотя я видел много вопросов и ответов об этой ошибке, но не смог написать. Я хочу передать аргумент классу Asynctask
и хочу назначить возвращенные данные переменной в текущем классе. Пожалуйста, помогите мне. Вот мой кодКак исправить NetworkOnMainThreadException в Android с помощью AsyncTask
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
int tem = 1940+position;
String temp = ""+tem;
String ReceivedData ="<";
GettingInternetData something = new GettingInternetData(temp);
try {
ReceivedData = something.getMoviesData();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
GettingInternetData.java
public class GettingInternetData {
String y = null;
public GettingInternetData(String year) {
// TODO Auto-generated constructor stub
y = year;
}
public String getMoviesData() throws Exception
{
BufferedReader toRead = null;
String data = null;
try
{
HttpClient client = new DefaultHttpClient();
URI url = new URI("URL goes here which requires an argument temp");
HttpGet getting = new HttpGet();
getting.setURI(url);
HttpResponse resp = client.execute(getting);
toRead = new BufferedReader(new InputStreamReader(resp.getEntity().getContent()));
StringBuffer alldata = new StringBuffer();
String l ="";
String nl = System.getProperty("line.Separator");
while((l = toRead.readLine()) !=null)
{
alldata.append(l + nl);
}
toRead.close();
data = alldata.toString();
return data;
}
finally{
if (toRead != null){
try{
toRead.close();
return data;
}catch (Exception e){
e.printStackTrace();
}
}
}
}
Заранее спасибо
возможный дубликат [android.os.NetworkOnMainThreadException] (Http: // StackOverflow. com/questions/6343166/android-os-networkonmainthreadexception) – 2Dee
Ужасный вопрос, дубликат многих других подобных, но на этот раз вы говорите: «Я знаю, что мне нужно использовать AsyncTask», но вы не показываете, что вы пробовали, используя его, что хуже ... – 2Dee