안드로이드에서 쓰레드라는 개념에 고심하고 있습니다. 나는 다음과 같은 코드가 메인 UI 쓰레드와 다른 쓰레드에서 돌아가고 있다고 생각했지만 100 % 확신 할 수는 없다. 그래서 나는 안드로이드 워드 프로세서가 어떤 언어로든 작성된 것처럼 설명을하기 위해 여기에 올 것이라고 생각했다. 아래 코드는 내 코드입니다.이 코드는 메인 UI 스레드와 다른 스레드에서 실행됩니까
public void retrieveImages(final ImagePresenterInt imagepresenter) {
storedImages = new ArrayList<Image>();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
File imagedir = new File("/mnt/shared/images");
File [] myfiles = File.listRoots();
String canread = String.valueOf(imagedir.canRead());
String isfile = String.valueOf(imagedir.isFile());
String isdir = String.valueOf(imagedir.isDirectory());
Log.d("Can Read?","Canread from file :" + canread);
Log.d("is file?","Is a file ? :" + isfile);
Log.d("is dir?","Is a Dir file :" + isdir);
File [] rootfiles =myfiles[0].listFiles();
for (File item : rootfiles)
{
Log.d(item.getAbsolutePath(),item.getName());
}
if(Looper.myLooper() == Looper.getMainLooper())
{
Log.d("main thread ?", "YES");
}
}
}, 2000);
}
위의 코드에 대한 이해는 내가 처리기를 생성한다는 것입니다. 이는 주 스레드 또는 UI 스레드와 관련됩니다. 메세지 대기 행렬과 루퍼가 연관되어 있습니다. 이 코드는 메시지 대기열로 전달되고 별도의 스레드에서 루퍼에 의해 기본 UI 스레드로 실행됩니다. 나는 여기서 잘못 될 수있다. 하지만 주로이 스레드가 주 스레드에서 실행되고 있는지 알고 싶습니다. 그리고 어떻게 다른 스레드에 그것을 얻을 것이라고하지 않으면? 나는이 질문
How to check if current thread is not main thread
이 분명히 스피 여전히 메인 스레드에서 실행 하더군요에서 발견 된 코드가 다른 스레드 사용하여 코드를 실행되고 있는지 확인하기 위해 노력했다. 귀하의 도움에 감사드립니다
사용중인 스레드에서 업데이트하거나 보거나 ui 항목을 시도하십시오. 오류가 발생하면 주 스레드 또는 UI 스레드가 아닙니다. – Meenal
보기 또는 UI 항목을 업데이트하려고합니까? –
ui item..like imageview 또는 textview – Meenal