티스토리 뷰

쓰레드 생성자를 통해 handler를 받고 Message를 통해서 핸들러에 값을 보냄

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.example.pinkboard;
 
import org.json.JSONObject;
 
import android.os.Handler;
import android.os.Message;
 
public class PinkBoardServiceThread extends Thread  {
 
    
    private PinkBoardService service;
    private Handler handler;
    
    public PinkBoardServiceThread(PinkBoardService service,
            Handler handler)
    {
        this.service = service;
        this.handler = handler;
    }
 
    @Override
    public void run() {
        // TODO Auto-generated method stub
        super.run();
        //service의 search메소드를 수행하고 결과를 핸들러를 통해 메인에게 전달.
        JSONObject data = service.parser();
        
        Message msg = handler.obtainMessage();
        msg.what = 1;
        msg.obj = data;
        
        handler.sendMessage(msg);
        
    }
}
 
cs


값을 받으면 핸들러 에서 처리


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
 
            if (msg.what == 1) {
                JSONObject data = (JSONObject) msg.obj;
                try {
                    JSONArray arr = data.getJSONArray("boardList");
                    
                    boardlist.clear();
                    for(int i =0; i< arr.length(); i++){
                        Board b = new Board();
                        
                        JSONObject o = arr.getJSONObject(i);
                        b.setTitle(o.getString("title"));
                        b.setReg_date(o.getString("writedate"));
                        b.setWriter(o.getString("name"));
                        Toast.makeText(MainActivity.this, b.toString(), 1).show();
                        boardlist.add(b);
                    }
                    adapter.notifyDataSetChanged();
                    
                } catch (JSONException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                
            }
        }
    };
cs


반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함