Ich verwende IntentServices, um Daten auf dem Server zu posten, aber ich weiß nicht, wie man die Antwort im JSON-Format in IntentService bekommt und wie wir feststellen können, dass dieser IntentService im Hintergrund ist oder nicht und einige Operationen basierend auf der Antwort ausführen.Wie bekomme ich JSON Antwort vom Server im Intent Service in Android?
public class CDealIntentService extends IntentService {
private static final String s_szDealDetailUrl = "http://202.121.144.133:8080/ireward/rest/json/metallica/getDealDetailInJSON";
private static String s_szresult = "";
Context ctx;
String m_szMobileNumber, m_szEncryptedPassword;
/**
* Creates an IntentService. Invoked by your subclass's constructor.
* <p/>
* // * @param name Used to name the worker thread, important only for debugging.
*/
public CDealIntentService() {
super("CDealIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
Context ctx = getApplicationContext();
CLoginSessionManagement m_oSessionManagement = new CLoginSessionManagement(ctx);
HashMap<String, String> user = m_oSessionManagement.getLoginDetails();
m_szMobileNumber = user.get(CLoginSessionManagement.s_szKEY_MOBILE);// getting mobile from saved preferences..........
m_szEncryptedPassword = user.get(CLoginSessionManagement.s_szKEY_PASSWORD);// getting password from shared preferences...
InputStream inputStream;
try {
// 1. create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// 2. make POST request to the given URL
HttpPost httpPost = new HttpPost(s_szDealDetailUrl);
String json;
// 3. build jsonObject
JSONObject jsonObject = new JSONObject();
jsonObject.put("agentCode", m_szMobileNumber);// mobile Number
jsonObject.put("pin", m_szEncryptedPassword);// password
//noinspection AccessStaticViaInstance
jsonObject.put("dealcode", CDealCode.getInstance().getS_szDealCode());// dealCode
// 4. convert JSONObject to JSON to String
json = jsonObject.toString();
// 5. set json to StringEntity
StringEntity se = new StringEntity(json);
// 6. set httpPost Entity
httpPost.setEntity(se);
// 7. Set some headers to inform server about the type of the content
// httpPost.setHeader("Accept", "application/json"); ///not required
httpPost.setHeader("Content-type", "application/json");
// 8. Execute POST request to the given URL
HttpResponse httpResponse = httpclient.execute(httpPost);
HttpEntity entity = httpResponse.getEntity();
// 9. receive response as inputStream
inputStream = entity.getContent();
System.out.print("InputStream...." + inputStream.toString());
System.out.print("Response...." + httpResponse.toString());
StatusLine statusLine = httpResponse.getStatusLine();
System.out.print("statusLine......" + statusLine.toString());
////Log.d("resp_body", resp_body.toString());
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
// 10. convert inputstream to string
s_szresult = CJsonsResponse.convertInputStreamToString(inputStream);
} else
s_szresult = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
System.out.println("Result" + s_szresult);
}
}
Sie können einige SharedPreference Variable nehmen, dass für und können prüfen, ob Dienst läuft oder nicht. Andernfalls gibt es mehrere Methoden, um zu überprüfen, ob der Dienst ausgeführt wird oder nicht –
was ist mit anderen Abfrage – niraj
Andere Abfrage bedeuten? –