PhoneStateListener를 사용하여 모바일 통화 상태의 변경 사항을 수신 대기 중입니다. 제가하고있는 일은 몇 초 후에 전화를 걸고 이전 활동으로 돌아가는 것입니다. 그러나 다시 활동으로 돌아갈 때마다 CallThread가 다시 실행되며, 전화를 몇 번이나하고 전화를받는 상황에 빠지게됩니다. 아무도 도와 줄 수 있습니까? 고맙습니다!전화 후 이전 활동으로 돌아 가기
이것은 내가 활동의 onCreate() 메소드에 넣은 것입니다.
Thread CallThread = new Thread(CallRunnable);
CallThread.start();
전화를 걸기 위해 실행 파일을 설정합니다. 내 PhoneStateListener에서
Runnable CallRunable = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5 * 1000); //wait for 5 secs and then make phone call
} catch (InterruptedException e) {
}
makePhoneCall(phoneNO);
}
};
, 다시 전화를 할 것입니다 물론
public class MyPhoneStateListener extends PhoneStateListener {
private boolean isCalling = false;
@Override
public void onCallStateChanged(int state, String phoneNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_OFFHOOK:
isCalling = true;
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.i("Call", "IDLE");
if (isCalling) {
Intent i = new Intent(getIntent());
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
isCalling = false;
}
break;
default:
break;
}
}
}