2012-07-03 4 views
0

, 내가 대신 타이머의로 스케줄을 사용합니다.안드로이드 디버깅로 스케줄 사용 DDMS 내 안드로이드 응용 프로그램에 대한

타이머와

, 당신은 그것을 이름을 지정하여 만들 수 있습니다. 예 : 타이머 myTimer = 새 타이머 ("TimerA"); 스레드 뷰에서 DDMS를 사용하여 디버깅 할 때, 나는 정확히 스레드가 실행되는 볼 ... 그리고 다시 내 코드 추적 이름을 사용할 수 있기 때문에

이 매우 편리합니다.

그러나,로 스케줄을 사용하여, 나는 이름을 지정 수없는 것. DDMS에서 Threads 뷰를 사용하여 디버깅 할 때, "pool-4-thread-1"과 같은 의미를 지니 며 의미가 없으며 그런 이름의 코드를 추적 할 수 없습니다.

아무도 도와 줄 수 있습니까?

답변

2

표준 자바 API는 ThreadPoolExecutor입니다, 그러나, ThreadPoolExecutor에 의해 생성 된 스레드의 이름을 지정하는 것은 ThreadFactory를 통해 지원되는 명명 지원하지 않습니다 here 체크 아웃 :

새로운 스레드를 사용하여 만들어집니다

새 스레드

만들기 ThreadFactory 별도로 지정하지 않으면 defaultThreadFactory()가 사용되어 모든 ThreadGroup이 동일한 NORM_PRIORITY 우선 순위 및 비 데몬 상태로 생성됩니다. 다른 ThreadFactory를 제공하면 스레드의 이름, 스레드 그룹, 우선 순위, 데몬 상태 등을 변경할 수 있습니다. newThread에서 null을 반환하여 ThreadFactory가 스레드를 만들지 못하면 실행 프로그램이 계속되지만 모든 작업을 실행하십시오.

샘플 코드 :이 도움이

ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = Executors.newScheduledThreadPool(5, new ThreadFactory() { 
    final AtomicInteger threadNumber = new AtomicInteger(1); 

    @Override 
    public Thread newThread(Runnable r) { 
    return new Thread(r, "Foo-" + threadNumber.getAndIncrement()); 
    } 
}); 

희망.

+0

고맙습니다! 정확히 내가 필요로하는 것. – user657178