Вы можете увидеть инструкции по работе установки/разрушения Chromecast (например, когда изменение ориентации происходит) на https://developers.google.com/cast/docs/android_sender
Соответствующие разделы кода являются следующие:
@Override
protected void onResume() {
super.onResume();
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
}
@Override
protected void onPause() {
if (isFinishing()) {
mMediaRouter.removeCallback(mMediaRouterCallback);
}
super.onPause();
}
И также следующий код:
@Override
protected void onStart() {
super.onStart();
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
}
@Override
protected void onStop() {
mMediaRouter.removeCallback(mMediaRouterCallback);
super.onStop();
}
это также хорошая идея, чтобы иметь логическое значение в вашей программе, например «wasLaunc hed "или" isConnected ", чтобы отслеживать, активно ли соединение с хромотемом. Я использую эту переменную в своем коде, чтобы проверить, могу ли я отправлять сообщения получателю или нет. Затем просто не забудьте сохранить эту переменную и восстановить ее при изменении ориентации на устройстве. Это работает для меня в моем приложении с поддержкой хромирования. Код для сохранения/восстановления моих переменного, поэтому survices изменения ориентации показан ниже:
protected void onSaveInstanceState(Bundle bundle) {
if (bundle!=null)
{
bundle.putBoolean("wasLaunched", wasLaunched);
}
super.onSaveInstanceState(bundle);
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState!=null)
{
wasLaunched = savedInstanceState.getBoolean("wasLaunched");
}
super.onRestoreInstanceState(savedInstanceState);
};
Конечно, вы также можете поместить другие вещи в вашей связке, который должен пережить изменение ориентации. Я не использую onDestroy, чтобы вы описали его, и не упоминается в документации Google, к которой я привязываюсь. Но я использую метод teardown(), описанный в этом документе, для которого я ссылаюсь для очистки, но это происходит только при закрытии соединения, потому что я не хочу закрывать соединение с хромовым при изменении ориентации.
Думаю, я задал этот вопрос до того, как был выпущен официальный SDK, спасибо, что посмотрели на него. – casolorz
Есть ли способ сохранить соединение, когда устройство переходит на блокировку экрана? –
Но я не думаю, что вы потеряете соединение с хромированием при блокировке экрана? (По крайней мере, если вы это сделаете, тогда должно быть возможно сохранить соединение, потому что это именно то, что делает приложение Netflix, потому что оно работает и в блокировке экрана) – zaifrun