BrodcastReceiver를 사용하여 전화벨이 울리는 동안 전화 수신 : 메시지를 말합니다.BroadcastReceiver가 스레드를 중지하지 않습니다.
에 브로드 캐스트 리시버의 코드 :
@Override
public void onReceive(Context context, Intent intent) {
cont = context;
tts = new Speak(cont);
String action = intent.getAction();
if (action.equalsIgnoreCase("android.intent.action.PHONE_STATE")) {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_RINGING)) {
incoming_number = intent.getExtras().getString(
"incoming_number");
falador = new Thread() {
@Override
public void run() {
try {
if (!this.isInterrupted()) {
while (true) {
sleep(5000);
h.post(repeater);
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
falador.start();
} else {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_IDLE)) {
h.removeCallbacks(repeater);
falador.interrupt();
}
}
}
}
그러나, 이벤트 IDLE 스레드를 중지하지 않습니다. 나 좀 도와 줄 수있어?
감사합니다, 마테우스
중단하기 전에 스레드가 실행되고 있습니까? 아마 그것은 전혀 달리지 않았다. 약간의 로깅을 통해 – waqaslam