Я использую PhoneStateListener для прослушивания изменений состояния мобильного вызова. Я работаю над тем, чтобы сделать телефонный звонок через несколько секунд, а затем вернуться к предыдущей деятельности. Тем не менее, каждый раз, когда я снова вернусь к активности, он снова запустит CallThread, и я поймаю в ловушку ситуацию, которая делает вызов после вызова снова и снова. Может ли кто-нибудь помочь? Спасибо!Возврат к предыдущему действию после телефонного звонка
Это то, что я использовал в методе onCreate().
Thread CallThread = new Thread(CallRunnable);
CallThread.start();
Он установит возможность выполнения телефонного звонка.
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);
}
};
В моей PhoneStateListener,
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;
}
}
}