안녕하세요.
네트워크로 정보를 받아와 리스트를 보여주는 서비스 입니다.
전체 갯수를 가져와 수식계산 후 더보기 레이아웃을 listView.addFooterView(mConvertView);
하는 과정에서..... 쓰레드 안에다 넣으면 실행이 안됩니다.....
쓰레드 밖으로 빼자니, 퍼포먼스가 좋지 않구요.......
원래 쓰레드 안에서 listView.addFooterView(mConvertView); 이게 실행이 안되는건가요?
좋은하루 되시구요, 답변 부탁 드리겠습니다.
감사합니다.
실행됨 ************************************************************************************
int mPage = 1;
int LIST_PAGE_COUNT = 20;
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
break;
}
};
protected void onCreate(Bundle savedInstanceState) {
mProgress = new ProgressDialog(this);
mProgress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgress.setMessage("로딩중 입니다");
mProgress.show();
mDataManager = new BoardListManager();
mDatasBoardContent = new ArrayList<HashMap<String, String>>();
int mTotalCnt = mDataManager.getBoardContent(mDatasBoardContent, mStrTableName, mPage); // 네트워크를 통해 전체갯수를 가져옴
Thread tList = new Thread() {
public void run() {
mHandler.sendEmptyMessage(0);
mProgress.dismiss();
}
};
tList.start();
listView.addFooterView(mConvertView); // 실행이 됨
}
실행안됨 ************************************************************************************
int mPage = 1;
int LIST_PAGE_COUNT = 20;
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
if (mTotalCnt > mPage * LIST_PAGE_COUNT) {
listView.addFooterView(mConvertView); // 실행이 안됨...........
}
break;
}
};
protected void onCreate(Bundle savedInstanceState) {
mProgress = new ProgressDialog(this);
mProgress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgress.setMessage("로딩중 입니다");
mProgress.show();
Thread tList = new Thread() {
public void run() {
mDataManager = new BoardListManager();
mDatasBoardContent = new ArrayList<HashMap<String, String>>();
int mTotalCnt = mDataManager.getBoardContent(mDatasBoardContent, mStrTableName, mPage); // 네트워크를 통해 전체갯수를 가져옴
mHandler.sendEmptyMessage(0);
mProgress.dismiss();
}
};
tList.start();
}




UI관련은 UIThread 나 핸들러를 통해서 해주셔야됩니다.
핸들러 사용하기가 싫으시다면
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
new Handler.post(new Runnable(){
public void run(){
작업
}
});
}
}).start();
이런식으로 post 연산자를 쓰시면 되요