728x90
반응형
질문 : Android 기본 : UI 스레드에서 코드 실행
UI 스레드에서 코드를 실행하는 관점에서 다음과 같은 차이점이 있습니까?
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Log.d("UI thread", "I am the UI thread");
}
});
또는
MainActivity.this.myView.post(new Runnable() {
public void run() {
Log.d("UI thread", "I am the UI thread");
}
});
과
private class BackgroundTask extends AsyncTask<String, Void, Bitmap> {
protected void onPostExecute(Bitmap result) {
Log.d("UI thread", "I am the UI thread");
}
}
답변
그것들은 모두 똑같은 순 효과를 가지지 만 정확히 동일하지는 않습니다.
제 1 및 제 2의 차이는 코드 실행시에 메인 프로그램 스레드에서 발생 될 경우, 첫 번째 (즉 runOnUiThread()
)가 실행된다 Runnable
즉시. 두 번째 것 ( post()
)은 이미 메인 애플리케이션 스레드에 있더라도 Runnable
BackgroundTask
의 인스턴스를 만들고 실행한다고 가정하면 post()
에 해당하는 양을 수행하기 전에 doInBackground()
를 실행하기 위해 스레드 풀에서 스레드를 가져 오는 데 많은 시간을 낭비합니다. . 이것은 세 가지 중 가장 효율적이지 않습니다. onPostExecute()
사용뿐만 아니라 실제로 백그라운드 스레드에서 수행 할 작업이있는 경우 AsyncTask
사용하십시오.
출처 : https://stackoverflow.com/questions/12850143/android-basics-running-code-in-the-ui-thread
728x90
반응형
'프로그래밍 언어 > Android' 카테고리의 다른 글
Android에서 프로그래밍 방식으로 앱 언어 변경 (0) | 2021.09.07 |
---|---|
[오류] React Native android build failed. SDK location not found (0) | 2021.09.03 |
Android Emulator에서 GPS 위치를 에뮬레이션하는 방법 (0) | 2021.09.03 |
Android에서 EditText의 텍스트 길이를 제한하는 가장 좋은 방법 (0) | 2021.09.02 |
Android 프로젝트에서 사용하지 않는 모든 리소스 제거 (0) | 2021.09.02 |