달력

5

« 2024/5 »

  • 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
2012. 1. 17. 13:25

[facebook] 비동기호출 아웃풋/작업일지2012. 1. 17. 13:25

facebook api가 호출될땐 화면 ui가 멈추고 facebook api가 호출된다(동기),
예를들어.. api를 이용하여 로그아웃을 하기전에 progress 팝업을 띄워 로딩중이란 표시를 해두었다.
그리고 바로 api를 통해 로그아웃을 처리했더니, progress 팝업이 뜨기도 전에 화면은 멈춘상태가 되고,
통신이 끝나고야 팝업이 떴다가 바로 죽었다.

AsyncFacebookRunner(비동기호출 방식)

위 클래스를 이용하면 위와같은 상황에선 progress팝업이 뜨고
api호출은 다른 쓰레드로 호출되 화면이 매끄럽게 처리된다. 



EX CODE)
public void upload(String message) {

Bundle params = new Bundle();

try{
String filepath = "/mnt/sdcard/DCIM/android.jpg";
File fin = new File(filepath);
byte[] imgData = getBytesFromFile(fin);

String url = getUriFromFullPath(filepath).toString();
params.putString("source",url);//Facebook API
params.putByteArray(url, imgData);//byte array로 넣어 주어야 함.
params.putString("message", "upload test image");
}catch (Exception e) {
String graphPath = "me"+"/photos";//나에게 보낼때는 me 라고 함. 사진 업로드시에는 photos로 정의 나머지는 문서 참조.
Facebook fb = Session.restore(getActivity()).getFb();
    new AsyncFacebookRunner(fb).request(graphPath, params,"POST", new UploadListener());
}
 }

'아웃풋 > 작업일지' 카테고리의 다른 글

findViewById.. null  (0) 2012.01.18
[facebook]권한체크  (1) 2012.01.16
MyStory - 다이어트 관련 기능 개요  (3) 2011.05.04
도져언~!  (4) 2011.03.17
올린다음날..  (1) 2011.03.02
:
Posted by windrises