2014-09-23 3 views
0

저는 Android와 Java를 처음 사용합니다. 실에 대한 명확한 설명과 활동과의 관계가 필요합니다. 나는이 경우를 생각하고있다 : 백그라운드에서 실행되는 코드로 두 가지 활동에 대해 볼 수있다. 이 스레드를 사용하여 얻을 수 있는지 모르겠습니다. 내가 읽은 것에서는 서비스를 사용하는 데 아무런 문제가 없지만 스레드의 경우 확실하지는 않습니다. 내 질문은 다음과 같습니다. 스레드가 백그라운드에서 실행중인 경우 두 개 또는 " 더 많은 활동? 예를 들어 스레드에 대한 가장 기본적인 샘플은 일부 활동의 텍스트를 변경하거나 진행률 표시 줄의 값을 업데이트하지만 두 번째 활동에서이 동일한 스레드를 사용하여 동일한 작업을 수행 할 수 있습니까? 또는 동일한 작업을 수행하는 두 번째 작업에 대한 새 스레드를 만들어야합니까? 이 경우에 서비스가 더 나은 접근 방식입니까?Android, 활동 및 스레드

감사합니다.

+1

당신이 볼 무엇을 의미합니까 (그래서 당신은 runOnUiThread 필요하지 않은) 때문에 당신은 대신 AsyncTask 사용을 고려할 수

, 그것은 귀하의 경우에 더 적합? 철저히 설명해주십시오. 스레드는 UI 구성 요소를 업데이트 할 수 없으며 UI 스레드 만 업데이트 할 수 있습니다. – 0101100101

+0

저는 자바에 익숙하지 않기 때문에 아마도 보이는 것이 올바른 용어가 아닙니다. 하나 이상의 활동 여부에 관계없이 스레드에 액세스 할 수 있음을 나타냅니다. – Madbyte

답변

0

스레드가 백그라운드에서 실행중인 경우 두 개의 "visible"이 될 수 있습니까? 아니면 자세한 활동입니까?

Activity 개의 인스턴스에 액세스 할 수 있으므로 "보이는"것으로 이해하는 이유는 무엇입니까? 그것은 또 다른 대상 일뿐입니다.

예를 들어, 스레드에 대한 가장 기본적인 샘플 의 텍스트 몇 가지 활동을 변경하거나 진행률 표시 줄의 값을 업데이트 할 수 있지만,이 동일한 스레드가 두 번째 활동에서 동일한 작업을 수행 할 수 있습니다?

물론. UI를 그리는 유일한 스레드는 UI 스레드 (주 스레드 또는 시스템 스레드라고도 함)입니다. 생성 한 다른 스레드에서 UI 업데이트를 수행하려면 runOnUiThread()으로 전화해야합니다.

이 경우 더 나은 서비스가 제공됩니까?

이 스레드가 앱 UI를 업데이트하기위한 용도로만 사용되는 경우 배경 스레드가 최상의 솔루션입니다. 앱이 종료 된 후에도 서비스가 계속 실행되며 앱과 서비스를 전달하려면 IPC를해야합니다. 느린 속도와 더 많은 코드가 필요합니다. 그 방법 중 일부는 UI 스레드에서 직접 실행

+0

고맙습니다. 그리고 예, 저는 이해하는 것처럼 "가시적"이라는 용어를 사용했습니다. – Madbyte