在我的应用程序中,有一个功能可以在拨打某个号码(例如)时结束拨出电话(并开始其他活动*123*
)
它目前正在工作,但需要 200 毫秒的延迟。没有延迟,就无法接收意图。
延迟会导致多次屏幕闪烁的后果:
my activity shows
-> switch to call
-> end call
->switch back to my activity
public class OutgoingCallListener extends BroadcastReceiver {
// ...
public void onReceive(final Context context, Intent intent) {
// ...
if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
// ...
if(number.equals("*123*")) {
// ...
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
telephonyService.endCall();
}
}, 200);
}
}
}
}
我见过其他具有此特殊号码拨号功能的应用程序,呼叫立即结束,没有结束呼叫蜂鸣声,并切换到应用程序活动而没有闪烁。
Q1:有人知道如何立即结束通话吗?我们之前可以捕捉到另一个意图ACTION_NEW_OUTGOING_CALL
吗?
Q2:在低配置的手机上(慢 CPU,内存少),是否会BroadcastReceiver
和像样的手机一样工作?