일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아이폰 해상도
- Object-c
- objective-c
- naver
- 네이버
- 맥용
- java
- 네이버구름
- 안드로이드
- iPhone
- ios
- Swift
- error
- 헬스
- Cordova
- 코딩테스트
- 아이폰 비율
- 구름TEST
- android
- codility
- code
- 아이폰
- goormtest
- algorism
- 코딩
- 구름알고리즘
- codemonkey
- 알고리즘
- 네이버알고리즘
- 맥북
- Today
- Total
그래오늘은이거야
android(안드로이드) UI Thread runOnUiThread Freeze not work (앱) 화면 멈추는 현상 본문
android(안드로이드) UI Thread runOnUiThread Freeze not work (앱) 화면 멈추는 현상
jinhongstar 2019. 8. 19. 15:33안녕하세요
Dev Leo 입니다.
IOS 개발하면 android 개발하려나 진짜 UI 구조 이해하는데 고생이 많네요...
와 이게 진짜 1주일을 그냥 날려버린 비싼 자료인데요...
처음엔 packet이 잘 못들어오는지알고 다른쪽으로 계속 리버싱 하다가...
물론 그쪽도 문제가 있어서 수정했지만...ㅋㅋ
runInUiThread 에 대한 개념 이해...
https://itmining.tistory.com/6
Interface Observer를 만들어서 ...
Observer thread 가 계속적인 델리게이트 (handler)?? 라고 해야하나?
용어가 헷갈리네요 ㅜㅜ 아무튼 call을 하는 상황에서...
TextView 에 값을 변경 해주려는데 아래와같이...
runOnUiThread 적용했는데 30분 안쪽으로 화면은 멈춰버렸습니다.
android 구조를 이해하고 runOnUiThread 소스를 사용했는데... freeze가 발생되네요
제 생각은 Observer Thread가 실행되면서 runOnUiThread Runnable을 한번더 실행 시키면서 sleep 이 되버리면서 freeze현상이 발생하는것 같습니다
private Observer statusObserver = new Observer() {
@Override
public void aaaaaaaaa(obj str) {
//여기에 UI 처리...
}
}
정확한 이유는 아직 조사중 입니다.
자세한 내용을 아시는 분은 댓글좀 남겨주세요!! ㅎㅎ
//runOnUiThread 를 사용했을경우...
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
TextView textView = (TextView) findViewById(id);
if (textView != null) {
textView.setText(text);
}
}
});
그래서 아래와 같이 new Thread로 적용하니 문제 없이 UI freeze현상이 발생되지 않습니다.
//new Thread로 작업 변경
new Thread(new Runnable() {
@Override
public void run() {
TextView textView = (TextView) findViewById(id);
if (textView != null) {
textView.setText(text);
}
}
}).start();
예전에 stackoverflow에서 즐겨찾기 해놓은 부분 확인 한 후 해결했네요.
도움이 된다면 사용하시기바립니다!
궁금한 점은 댓글 주세요!
'세상 개발 > Android' 카테고리의 다른 글
[안드로이드 Facebook 오류] 맥북(MAC) android invalid key hash faceboock (0) | 2019.04.12 |
---|---|
[안드로이드 오류] android error: cannot find symbol class (2) | 2019.04.05 |
[맥북/맥용] Android 난독화 복호화 적용 방법 Proguard (1) | 2019.04.03 |
Intellij Android Could not determine Java version using executable (0) | 2018.10.11 |
안드로이드 스튜디오 개발 배우고 싶은 분들께 추천 합니다. (0) | 2017.01.18 |