2012-11-19 7 views
1

2 개의 스레드를 생성하는 서비스가 있다고 가정 해 보겠습니다. 이 두 스레드는 서비스의 메소드에 액세스 할 수 있습니다. (메서드 내에서) 스레드 중 어떤 스레드를 호출했는지 알 수있는 방법이 있습니까?내 서비스 메소드라고하는 스레드를 알 수 있습니까?

나는 안드로이드에서 프로세스를위한 메커니즘이 있다는 것을 알고있다 : 예를 들어 getCallingUid를 사용할 수 있지만 스레드와 비슷한 것이 있는가? 당신이 스레드를 만들 만들 때

String name = Thread.currentThread().getName(); 
Log.d("Service", "Called from " + name + " thread"); 

당신이 생성자의 이름입니다 지정할 수 있습니다

답변

1

을 참조하십시오. Thread.currentThread()는 항상 현재 스레드를 제공합니다.

+0

이것이 Thread.getId와 동일하다고 가정합니다. 나는 이것을 시도 할 것이다 .. – EyalBellisha

+0

그것은 아니다. getId()는 인스턴스 메소드이며 currentThread()는 정적입니다. 호출하는 스레드를 전달합니다. 그런 다음 getId()를 사용할 수 있습니다. –

3

당신은 스레드를 얻을 수 currentThread 방법을 사용하고 이름의 얻을 getName을 사용할 수 있습니다 감사합니다. Thread

+0

내 경우 스레드에 이름이 없습니다 (이 작업을 수행 할 수는 있지만 실제로 안드로이드 프레임 워크 내에서이 작업을 수행하므로 너무 많은 변경을하지 않는 것이 좋습니다 ...) – EyalBellisha

+0

@androidcompile 정확히 무엇을 원하십니까? ? Thread.currentThread()에서 현재 스레드 이름과 ID를 얻을 수 있습니다. ID 또는 이름을 사용하여 수행하고자하는 작업은 무엇입니까? –

0

Thread.getId을 전달하면 어떻게됩니까?

+0

서비스의 메서드 내부에이 메서드를 추가하는 것이 좋습니다. 나는 그것을 시도 할 것이다. 단지 서비스의 스레드 ID를 반환하지 않겠는가? – EyalBellisha

+0

서비스를 호출하기 전에 스레드 코드에서 스레드 ID를 가져 와서 매개 변수로 서비스에 전달하십시오. –

관련 문제