지금 오류 뜨는 상황인데 TimeTask로 3초 주기로 반복하려고 하는데 처음에는 run안에코드가 저게아니긴했는데 오류떠서 그냥 안녕하세요로 바깠거든???근데 저게 처음 했을때 잘됬는데 몇번 실행하다보니까 갑자기 안돼 안녕하세요첨에는 뜨는데 그다음에 한번더 실행할때 되지가 않아 분명 됐었는데 말이야 timer-0 Fatal 예외 대해서 쳐봤는데도 머 나오지도 않고 아는 사람있어?
안드로이드 프로그래밍좀 아는사람?
익명(121.137)
2020-11-24 23:17
추천 0
댓글 18
다른 게시글
-
ㄹㅇ 프로그래밍은 외우면 안됨BILL(dakota4291) | 20.11.24추천 0
-
보안 공부하면서 느낀 점익명(220.81) | 20.11.24추천 0
-
위키 게이임?우물안개구..(lastpenguin) | 20.11.24추천 2
-
겨울이 출근하기 제일 힘든듯익명(61.254) | 20.11.24추천 0
-
또 시작이다 이 탈진감 [5]익명(175.223) | 20.11.24추천 0
-
역사가 재밌는건 재현되기 때문인듯.codesafer(codesafer) | 20.11.24추천 0
-
스프링하나만 해도 공부할거 졸라많지않냐익명(210.219) | 20.11.24추천 0
-
서버 잘 알 없냐?? [6]ㅇㅇㅇ(210.107) | 20.11.24추천 0
-
내가 노력을 덜 하는걸까 [11]익명(58.151) | 20.11.24추천 0
-
요즘에 서버리스 추세라면서 [1]bl4ck4rk(sensuishinobu) | 20.11.24추천 0
사실 전에 원래코드도 잘됬었는데 갑자기 안되서 이유찾다가 여기까지온거야 이유가 머야?
메인 쓰레드 이외에 너가 생성한 쓰레드에서 UI 변경을 시도했기 때문에 발생하는 오류
쓰레드-핸들러 조합으로 핸들러에서 UI변경하던지, 아니면 AsyncTask 써라 개인적으로 후자가 훨씬 깔끔하고 구글도 추천하는 방법임
궁금한게 처음에 되다가 안되는 이유는 머야?? 나는딱히 쓰레드 생성해서 쓰고 그러지않았는데
TimerTask 클래스가 안 나와있어서 모르겠는데, 안드로이드 기본 제공 API는 아닌거 같으니까 너가 만든 클래스겠지 이게 run 메소드 오버라이드 하는거 보니까 정체가 딱봐도 쓰레드임
난 처음에 성공했다는 거 자체가 일단 의심스러운데? 메인 쓰레드 이외에서 UI변경하면 다 에러임
처음에 아주잘됬어 그리고 애당초에 그래서 조금씩 바꾸니까 그러던데 timetask이거 안드로이드 기본제공인거같아 나도 그냥 시간마다 반복시키려고 타이머 찾아보다가 발견했어
import 한거 윗부분 짤렸는데 전체 좀 보여줘봐 내생각에 그거 쓰레드 맞음
import android.os.Bundle; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import java.util.Random; import java.util.Timer; import java.util.TimerTask; 이렇게 import 되어있어
안드로이드 API가 아니라 자바 내장이었노 몰랐네 ㅋㅋㅋㅋ 저거 까보면 쓰레드일거 같은데, 걍 구글이 하라는 데로 AsyncTask 써 구글 검색 ㄱㄱ
고마워 혹시 내가 어떤 코드를 3초마다 반복실행하다가 3번반복하고 intent해서 다음걸로 넘어가고싶을때 쓸만한거있어???
백그라운드 반복 작업 중에 setText같은 UI작업 없다면 쓰레드만 사용, UI 작업 하나라도 있으면 AsyncTask임
백그라운드 반복작업 말고 그냥 단순 시간당 반복작업이야
내 존나 짧은 경험 상 너가 말한 그게그거임
내가 말한 그게그거임 이라는 말이 무슨소리인지 이해는 못했지만 진짜 도움많이 됬다 고맙다 복받아라
단순 시간 당 반복 작업도 백그라운드 작업이라는 뜻이었음 너가 메인 쓰레드에서 Thread.sleep걸면 바로 알수 있는데 앱이 먹통되버림 ㅋㅋ 그래서 너가 말한 반복 작업도 백그라운드 작업이라 AsyncTask 쓰라는 거
그리고 Only the original thread that created a view ~~ 부분을 검색해야지 어딜 검색했다는거 ㅋㅋㅋ
멀 알아야 말이지...