hander와 thread 없이 비동기 동작을 위한

private void firstAction(){
(new AsyncTask <MainActivity, Void, MainActivity>(){
@Override
protected MainActivity doInBackground(MainActivity... params) {
return params[0];
}

@Override
protected void onPostExecute(MainActivity result) {
//super.onPostExecute(result);
result.firstLoad();
}

}).execute(this);
}

MainActivity 속의 onCreate 안에서
firstAction();
라고 호출하면 따로 쓰레드를 만들어서
MainActivity.firstLoad()
를 호출하도록 만든 메소드.
(firstLoad 메소드는 JSON통신, UI기본 설정 하는 등의 동작을 함)

# 왜?
Skipped 64 frames!  The application may be doing too much work on its main thread.
같은 메세지가 나오면서 json 읽어오는 동작이 안되기에
따로 쓰레드를 만들어 동작하도록 함.
#주의 
doInBackground 
안에서 UI를 제어하면 안됨. 에러남
onPostExecute 안에서 해야함
상세한건 한번 해보고 에러 검색해보자!
(핸들러의 UI제어 가능 어쩌고 저쩌고 문제)
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1