wizard10
جمعه 19 خرداد 1396, 18:05 عصر
سلام خدمت اساتید و برنامه نویسان سایت برنامه نویس
من در برنامم یک سرویس دارم وقتی استارت میشه به یه url وصل میشه و اطلاعات دریافت میکنه ولی وقتی سرویس استارت میشه خطای force close میده و بخاطر تیکه کد های پایین هست
این کد ها در اکتیویتی ها هیچ مشکلی ندارن و حتی در سرویس هم کد ها خطا نمیدن ولی موقع اجرا force close میده برنامه
private class Getanswer extends AsyncTask<String, String, String> {
private ProgressDialog pDialog;
private InputStream is = null;
private String url = "http://ir-learn.com/test/zaet.php";
private String page_output = "";
private String text = "";
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... args) {
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id", userid.toString()));
params.add(new BasicNameValuePair("service", design.toString()));
params.add(new BasicNameValuePair("status", "receivepm"));
params.add(new BasicNameValuePair("tzid", tzid.toString()));
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,"utf-8"));
Toast.makeText(getApplicationContext(), "ff", Toast.LENGTH_LONG).show();
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
text+=line+="";
}
is.close();
JSONArray ja = new JSONArray("["+text+"]");
for (int i = 0; i < ja.length(); i++) {
JSONObject jb = ja.getJSONObject(i);
pm=jb.getString("msg");
res3=jb.getString("response");
}
page_output = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
return page_output;
}
@Override
protected void onPostExecute(String page_output) {
pDialog.dismiss();
try {
// display output of internet page (page_output string)
// TextView tv = (TextView) findViewById(R.id.textView1);
// tv.setText(page_output);
} catch (Exception e) {
e.printStackTrace();
}
}
}
ممنون میشم کمکم کنید
من در برنامم یک سرویس دارم وقتی استارت میشه به یه url وصل میشه و اطلاعات دریافت میکنه ولی وقتی سرویس استارت میشه خطای force close میده و بخاطر تیکه کد های پایین هست
این کد ها در اکتیویتی ها هیچ مشکلی ندارن و حتی در سرویس هم کد ها خطا نمیدن ولی موقع اجرا force close میده برنامه
private class Getanswer extends AsyncTask<String, String, String> {
private ProgressDialog pDialog;
private InputStream is = null;
private String url = "http://ir-learn.com/test/zaet.php";
private String page_output = "";
private String text = "";
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... args) {
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id", userid.toString()));
params.add(new BasicNameValuePair("service", design.toString()));
params.add(new BasicNameValuePair("status", "receivepm"));
params.add(new BasicNameValuePair("tzid", tzid.toString()));
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,"utf-8"));
Toast.makeText(getApplicationContext(), "ff", Toast.LENGTH_LONG).show();
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
text+=line+="";
}
is.close();
JSONArray ja = new JSONArray("["+text+"]");
for (int i = 0; i < ja.length(); i++) {
JSONObject jb = ja.getJSONObject(i);
pm=jb.getString("msg");
res3=jb.getString("response");
}
page_output = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
return page_output;
}
@Override
protected void onPostExecute(String page_output) {
pDialog.dismiss();
try {
// display output of internet page (page_output string)
// TextView tv = (TextView) findViewById(R.id.textView1);
// tv.setText(page_output);
} catch (Exception e) {
e.printStackTrace();
}
}
}
ممنون میشم کمکم کنید