При запуске звонка выглядит нормально.
Существует разница между android 11+ и более ранними версиями приложения.
Android 10 или менее вам нужно, чтобы начать новое намерение, Android 11+ вы просто используете BringTaskToFront
В состоянии вызова IDLE:
if (Build.VERSION.SDK_INT >= 11) {
ActivityManager am = (ActivityManager) activity.getSystemService(Activity.ACTIVITY_SERVICE);
am.moveTaskToFront(MyActivity.MyActivityTaskId, ActivityManager.MOVE_TASK_WITH_HOME);
} else {
Intent intent = new Intent(activity, MyActivity.class);
activity.startActivity(intent);
}
Я установил MyActivity.MyActivityTaskId
, когда выполняю вызов своей активности следующим образом, если это не работает, установите эту переменную на родительской странице активности на странице, на которую вы хотите вернуться.
MyActivity.MyActivityTaskId = this.getTaskId();
MyActivityTaskId
- статическая переменная в моем классе активности
public static int MyActivityTaskId = 0;
Надеюсь, это сработает для вас. Я использую приведенный выше код немного по-другому, я открываю свое приложение, как только на звонок отвечают, так что пользователь может видеть детали звонящего.
Я также установил некоторые вещи в AndroidManifest.xml
:
/*Dont really know if this makes a difference*/
<activity android:name="MyActivity" android:taskAffinity="" android:launchMode="singleTask" />
и разрешения:
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
Пожалуйста, задавайте вопросы, если вы застряли.