android 请求网络异步载入
生活随笔
收集整理的這篇文章主要介紹了
android 请求网络异步载入
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/*** 封裝ProecssDialog對話框**/
public class LoadDialog extends ProgressDialog {private String title = "進(jìn)度對話框";private String message = "載入數(shù)據(jù)中....";public LoadDialog(Context context, int theme) {super(context, theme);}/*** 用默認(rèn)的標(biāo)題和內(nèi)容來創(chuàng)建對話框* @param context*/public LoadDialog(Context context) {super(context);initDialog();}/*** 用指定的標(biāo)題和內(nèi)容來創(chuàng)建對話框* @param context* @param title* @param message*/public LoadDialog(Context context,String title,String message){super(context);if(title != null){this.title = title;}if(message != null){this.message = message;}initDialog();}/*** 初始化對話框參數(shù),默認(rèn)對話框不能夠取消*/public void initDialog(){setTitle(title);setMessage(message);setProgressStyle(ProgressDialog.STYLE_SPINNER);setCancelable(false);}/*** 打開對話框。設(shè)置回調(diào)方法,傳遞須要運(yùn)行業(yè)務(wù)方法的類模板,方法名和參數(shù)列表* @param callback 回調(diào)方法,該方法在對話框關(guān)閉后回調(diào),并獲取返回的數(shù)據(jù)* @param serviceClass 運(yùn)行業(yè)務(wù)方法的類模板* @param method 運(yùn)行業(yè)務(wù)方法的方法名* @param params 運(yùn)行業(yè)務(wù)方法的參數(shù)列表*/public void execute(Callback callback,Class serviceClass,String method,Object... params){super.show();ServiceAysnTask task = new ServiceAysnTask(callback,serviceClass,method);task.execute(params);}/*** 回調(diào)方法的接口**/public interface Callback{public void getResult(Map map);}/*** 與遠(yuǎn)程服務(wù)通信的線程類* @author BDK* AsyncTask 異步任務(wù)*/private class ServiceAysnTask extends AsyncTask<Object,Object,Map>{private Class serviceClass;private String method;private Callback callback;public ServiceAysnTask(Callback callback,Class serviceClass,String method){this.callback = callback;this.serviceClass = serviceClass;this.method = method;}@Overrideprotected Map doInBackground(Object... params) {Map resultMap = null;try {Object obj = serviceClass.newInstance();//創(chuàng)建類模板對象Class [] paramTypes = new Class[params.length];for (int i = 0; i < paramTypes.length; i++) {paramTypes[i] = params[i].getClass();}//依據(jù)類模板得到方法Method m = serviceClass.getMethod(method, paramTypes);resultMap = (Map) m.invoke(obj, params);} catch (Exception e) {e.printStackTrace();} LoadDialog.this.cancel();return resultMap;}@Overrideprotected void onPostExecute(Map result) {super.onPostExecute(result);if(result == null){Toast.makeText(LoadDialog.this.getContext(), "網(wǎng)絡(luò)通信異常", Toast.LENGTH_LONG).show();return;}callback.getResult(result);}}
}
轉(zhuǎn)載于:https://www.cnblogs.com/gcczhongduan/p/5232054.html
總結(jié)
以上是生活随笔為你收集整理的android 请求网络异步载入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win32com下载地址
- 下一篇: win32com模块