Ваше приложение должно расширять класс CarAppService и реализовывать его метод onCreateSession , который возвращает экземпляр Session , соответствующий текущему соединению с хостом:
Котлин
class HelloWorldService : CarAppService() {
...
override fun onCreateSession(): Session {
return HelloWorldSession()
}
...
}
Java
public final class HelloWorldService extends CarAppService {
...
@Override
@NonNull
public Session onCreateSession() {
return new HelloWorldSession();
}
...
}
Экземпляр Session возвращает информацию о том, какой экземпляр Screen следует использовать при первом запуске приложения:
Котлин
class HelloWorldSession : Session() {
...
override fun onCreateScreen(intent: Intent): Screen {
return HelloWorldScreen(carContext)
}
...
}
Java
public final class HelloWorldSession extends Session {
...
@Override
@NonNull
public Screen onCreateScreen(@NonNull Intent intent) {
return new HelloWorldScreen(getCarContext());
}
...
}
Когда вашему автомобильному приложению необходимо начинать работу с экрана, отличного от главного или посадочного экрана, например, при обработке прямых ссылок, вы можете использовать ScreenManager.push перед возвратом из onCreateScreen , чтобы предварительно заполнить стек предыдущих экранов. Предварительное заполнение позволяет пользователям возвращаться к предыдущим экранам с первого экрана, отображаемого вашим приложением.