Handler mechanism does not need to understand too much, I think it can be achieved by reference to examples, each time using the example.
There are both threads and the processing of the messages received by the Mhandler docking.
PackageCom.hengtiansoft.sportnow.news.ui;Importjava.util.ArrayList;ImportJava.util.HashMap;Importjava.util.List;ImportJava.util.Map;Importandroid.app.Activity;ImportAndroid.app.ProgressDialog;ImportAndroid.os.AsyncTask;ImportAndroid.os.Bundle;ImportAndroid.os.Handler;ImportAndroid.os.Message;Importandroid.text.format.DateUtils;ImportAndroid.view.View;ImportAndroid.widget.Button;ImportAndroid.widget.ListView;ImportAndroid.widget.Toast;ImportCOM.HENGTIANSOFT.SPORTNOW.R;Importcom.handmark.pulltorefresh.library.PullToRefreshBase;ImportCom.handmark.pulltorefresh.library.PullToRefreshBase.Mode;ImportCom.handmark.pulltorefresh.library.PullToRefreshListView;ImportCom.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;ImportCom.handmark.pulltorefresh.library.PullToRefreshBase.Mode;ImportCom.handmark.pulltorefresh.library.PullToRefreshListView;ImportCom.hengtiansoft.sportnow.news.adapter.MainListViewAdapter;ImportCom.hengtiansoft.sportnow.news.app.NewsAppContext;Importcom.hengtiansoft.sportnow.news.app.NewsAppException;Importcom.hengtiansoft.sportnow.news.bean.News;Importcom.hengtiansoft.sportnow.news.bean.NewsList;ImportCom.hengtiansoft.sportnow.news.common.UIHelper; Public classNewsactivityextendsActivity {PrivatePulltorefreshlistview ListView; PrivateList<news>newslist; PrivateNewsappcontext AppContext;//Global Context PrivateMainlistviewadapter Listviewadapter; PrivateProgressDialog Selectordialog; PrivateButton bt_news, Bt_forum, Bt_cartype, Bt_favour, Bt_more; @Overrideprotected voidonCreate (Bundle savedinstancestate) {//TODO auto-generated Method Stub Super. OnCreate (savedinstancestate); Setcontentview (r.layout.activity_news); AppContext=(Newsappcontext) getapplication (); //Network connection Judgment if(!appcontext.isnetworkconnected ()) Uihelper.toastmessage ( This, r.string.network_not_connected); InitData (); } //variablesHandler Mhandler =NewHandler () { Public voidhandlemessage (Message msg) {selectordialog.cancel (); if(Msg.what = = 1) {newslist= (list<news>) Msg.obj; Listviewadapter=NewMainlistviewadapter (newsactivity. This, newslist); Listview.setadapter (Listviewadapter); } Else if(Msg.what = =-1) {uihelper.toastmessage (newsactivity. This, "No Data"); } Else if(Msg.what = =-2) {uihelper.toastmessage (newsactivity. This, r.string.xml_parser_failed); } } }; Private voidInitData () {selectordialog.show (); NewThread () { Public voidrun () {Message msg=NewMessage (); BooleanIsrefresh =false; Try{newslist list=appcontext.getnewslist (); if(List.getnewscount () > 0) {Msg.what= 1; Msg.obj=list.getnewslist (); Appcontext.saveobject (list,"Newslist_"); } Else{msg.what=-1; } } Catch(newsappexception e) {e.printstacktrace (); Msg.what=-2; Msg.obj=e; } mhandler.sendmessage (msg); }}.start (); }}
"Android Basics" "Android multithreaded Handler"