Ok。はっきり言って難しいと思います。私が試してみましょう。
すべての呼び出しで呼び出されるブロードキャスト レシーバーを使用しています。
<receiver
android:name="com.example.receiveCall"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
そして、onReceive メソッドでは、上でアクティビティを開始しています。
@Override
public void onReceive(final Context context, Intent intent) {
Handler mHandler = new Handler();
AttendActivity.ctx = context;
Runnable mUpdateTimeTask = new Runnable() {
public void run() {
// do what you need to do here after the delay
// context.startService(new Intent(context, AutoAnswerIntentService.class));
context.startActivity(new Intent(context,
AttendActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
};
mHandler.postDelayed(mUpdateTimeTask, 500);
}
}
アプリが表示されていない場合、これは正常に機能します。ただし、アプリが表示されている場合。私のアクティビティは、InCallScreen の上に開きます。しかし、AttendActivity を閉じると。InCallScreen の代わりに私のアプリが表示されます。Incallscreen はその上にあります。
これを修正してください。望ましい出力
MyApp -> InCallScreen -> AttendActivity
現在の出力 InCallScreen -> MyApp -> AttendActivity