У меня есть мультимедийное приложение с основным действием, которое я использую для большинства функций приложения.
Когда я открываю медиаплеер (я использую exoplayer), я открываю второе действие (player-действие), которое предназначено для функций, связанных с воспроизведением мультимедийного содержимого.
Если во время воспроизведения мультимедиа звонит телефон, и я отвечаю на звонок, действие проигрывателя немедленно закрывается (я вижу onStop () и вызываемые функции onDestroy ()).
Когда я вешаю трубку, отображается основное действие, которое находится в состоянии, в котором оно было при создании действия игрока. Кажется, все работает так, как будто я нажал кнопку «Назад» во время действия игрока.
Я хочу, чтобы действие игрока оставалось открытым во время телефонного разговора, а затем возвращаться к игре, когда телефонповесить трубку. Я уже улавливаю состояние телефона и знаю, как приостановить и перезапустить носитель в зависимости от состояния телефона. Но я не могу понять, почему действие игрока закрывается, когда я отвечаю на звонок.
Вот код, который я использую для начала второго действия:
val playerIntent = Intent(this, PlayerActivity::class.java)
playerIntent.putExtra("docket", event.docket as Serializable)
startActivity(playerIntent)
docket - это переменная, содержащая инструкции к действию того, какой носитель воспроизводить.
Вот код из манифеста, в котором определены оба действия:
<activity
android:name=".activity.main.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".activity.player.PlayerActivity"
android:launchMode="singleInstance"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_player"
android:theme="@style/FullscreenTheme"
android:noHistory="true">
</activity>