UI线程,主线程阻塞(blocking).新启一个线程,并由Handler来执行.
- @Override
- public void onScroll(AbsListView view, final int firstVisibleItem,
- final int visibleItemCount, final int totalItemCount) {
- Thread songsList = new Thread(){
- @Override
- public void run(){
- firstItem = firstVisibleItem;
- visibleCout = visibleItemCount;
- totalCount = totalItemCount;
- Message message = new Message();
- message.what = 2;
- handler.sendMessage(message);
- }
- };
- songsList.start();
- }
- Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case 2:
- if ((firstItem + visibleCout == totalCount)
- && (totalCount != 0)) {
- if (refreshAble) {
- refreshAble = false;
- loading.setVisibility(View.VISIBLE);
- /**
- * 获取下一页数据
- */
- getData(++pageNo);
- }
- }
- break;
- default:
- break;
- }
- }
- };
http://developer.android.com/resources/articles/painless-threading.html