0
私は放送受信機を使用して、通話が終了するたびにアクティビティAを開きました。 5秒後にアクティビティが別のアクティビティBにリダイレクトされます。今別の画面にナビゲートしている間に放送受信機の問題が発生しました
別の時間コールが活動A放送受信機は、直接これが私のコードである
活動B.
を呼び出し、呼び出しにもかかわらず、終了。public void onReceive(Context context, Intent intent) {
try {
if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
} else {
String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
int state = 0;
if (stateStr.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
intent = new Intent(context, Create_log.class);
System.out.println("call state called");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(intent);
break;
}
} else if (stateStr.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
state = TelephonyManager.CALL_STATE_OFFHOOK;
} else if (stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
state = TelephonyManager.CALL_STATE_RINGING;
}
onCallStateChanged(context, state, number);
}
} catch (Exception e) {
e.printStackTrace();
}
}
これはcreate_log.classに、create_logでは5秒後に別のクラスが呼び出されました。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Intent mainIntent = new Intent(Create_log.this, Home_nav.class);
Create_log.this.startActivity(mainIntent);
Create_log.this.finish();
}
}, 5000);
しかし、時々、ブロードキャストレシーバーは私を直接Home_nav.classに連れて行きます。何が問題なのでしょうか?
のご意向で、この行をしてみてください。だから私はそれが正常に動作するかどうかを確認することができません。とにかく今まではあなたの答えをアップアップしてうまく働いています。 –