2011-03-10 5 views
0

다음 코드를 사용하여 123456으로 전화를 시작합니다. 문제가있는 것은 다른 번호로 전화를 걸고 2-3 초 정도 지연됩니다. 첫 번째 전화는 여전히 전화하고 있습니다.전화 번호를 걸 때 지연된 의도 시작하기

Thread.sleep(), Handler, startActivityForResult() 등을 시도했지만 둘 다 두 번째 호출을 시작하기 전에 다시 버튼을 누르기를 기다린다.

String num = "tel:123456"; 

Intent intent = new Intent(Intent.ACTION_CALL); 
intent.setData(Uri.parse(num)); 
startActivity(intent); 

편집 :

나는 두 번째 통화를 시작하기 전에 다음 사항을 추가하고해야처럼 작동 것처럼 그것은 솔기.

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

답변

0

활동이 백그라운드로 실행되면 메인 스레드가 더 이상 활성화되지 않으므로 수행하려는 작업이 작동하지 않습니다.

백그라운드 스레드를 시작하고 거기에서 코드를 실행 해보십시오.

0

핸들러 사용

Handler delayedCallHandler = new Handler() { 
    public void handleMessage(Message msg) { 
    String num = (String) msg.obj; 

    Intent intent = new Intent(Intent.ACTION_CALL); 
    intent.setData(Uri.parse(num)); 
    startActivity(intent);` 
    } 
}; 

그리고 코드에서

, 당신은 지연과 함께 활동을 시작할 수 있습니다 :

delayedCallHandler.sendMessage(
    delayedCallHandler.obtainMessage(0, "tel:123456"), // msg.obj = the number to call 
    2000); // 2 seconds 
관련 문제