我需要使用webservice獲取圖像,這是rest.And大多數教程是關於點擊按鈕,以觸發process.I需要實現這樣一種方式,當活動打開圖像有無需觸發或點擊按鈕即可立即加載。我只需要一個源或想法。 任何幫助將不勝感激。android Restful GET操作
回答
實現一個Asynctask並將其稱爲onCreate。
下面是如何做到這一點的例子;
public class MainActivity extends ListActivity {
.
.
.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
.
.
.
// Calling async task to get json
new GetContacts().execute();
}
/**
* Async task class to get json by making HTTP call
* */
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
contacts = jsonObj.getJSONArray(TAG_CONTACTS);
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
String email = c.getString(TAG_EMAIL);
String address = c.getString(TAG_ADDRESS);
String gender = c.getString(TAG_GENDER);
// Phone node is JSON Object
JSONObject phone = c.getJSONObject(TAG_PHONE);
String mobile = phone.getString(TAG_PHONE_MOBILE);
String home = phone.getString(TAG_PHONE_HOME);
String office = phone.getString(TAG_PHONE_OFFICE);
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put(TAG_ID, id);
contact.put(TAG_NAME, name);
contact.put(TAG_EMAIL, email);
contact.put(TAG_PHONE_MOBILE, mobile);
// adding contact to contact list
contactList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
MainActivity.this, contactList,
R.layout.list_item, new String[] { TAG_NAME, TAG_EMAIL,
TAG_PHONE_MOBILE }, new int[] { R.id.name,
R.id.email, R.id.mobile });
setListAdapter(adapter);
}
}
}
正如你所看到的,你只需要調用的AsyncTask(新GetContacts()執行();)的onCreate然後它會爲您設計的。
參考文獻:http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
在onCreate()
方法Activity
中寫入您的加載圖像的代碼。所以用戶不需要觸發或點擊按鈕或其他東西。
感謝您answer.I會嘗試一下。 –
每次重新創建活動(包括方向更改)時,都會調用onCreate()。查看android生命週期頁面http://developer.android.com/training/basics/activity-lifecycle/index.html。也許包括一些緩存類型的機制,所以你不必每次都下載圖像。如果你只是學習一個教程,但是理解它是一件好事,那麼可能會過度。 –
您可以使用Image Downloder來爲您緩存圖像。請檢查https://github.com/nostra13/Android-Universal-Image-Loader –
編寫代碼中的onCreate()或活動的onResume()方法。
對於應用程序和web服務之間的通信,您可以使用Retrofit。
也爲更多的信息,您可以閱讀本教程Retrofit - Getting Started and Create an Android Client
- 1. 在Restful服務中實現GET操作的最佳實踐
- 2. RESTful複製/移動操作?
- 3. 多個GET操作
- 4. HTTP 414 - RESTful和GET
- 5. 在Rails中,GET/users是用於索引操作的RESTful標準,並且/ users是用於創建操作的POST?
- 6. 中斷HTTP GET操作
- 7. rake中止!操作:「GET MORE」
- 8. ApiController GET操作命名
- 9. 與參數GET操作
- 10. Get UIActionSheet執行操作
- 11. 如何操作Get查詢?
- 12. RESTful - GET或POST - 怎麼辦?
- 13. 如何使GET RESTful請求
- 14. RESTful GET URL以.0結尾
- 15. Xamarin Restful Services(get put刪除)
- 16. RESTful API應具有哪些操作?
- 17. 在Restful webservice中刪除操作
- 18. 更改默認RESTFul操作laravel
- 19. 用於RESTful UIButton操作的UX
- 20. 對Rails Restful資源的批量操作
- 21. ASP.NET MVC中的RestFul操作方法3
- 22. RESTful(WebAPI)服務中的非CRUD操作
- 23. WCF Restful Service - 實現異步操作
- 24. 瞭解RESTful。複雜操作的URI
- 25. Android和RESTful服務
- 26. HBase聚合,Get和Put操作,批量操作
- 27. Memcached - GET和SET操作是否爲原子操作?
- 28. Android操作欄
- 29. Android SMS操作
- 30. Android操作欄,
謝謝你的回答。我會試試看。 –
非常感謝您的關注。 –
不客氣 – Ricardo