私はBrodcastReceiverを使って、電話を鳴らしながらメッセージを受け取ります。BroadcastReceiverはスレッドを停止しません。
に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