Source:
<code>protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); copyFileFromAssetsToCache(getString(R.string.bristol_model)); copyFileFromAssetsToCache(getString(R.string.bristol_skin)); setupToolbar(); mSceneView = findViewById(R.id.sceneView); ArcGISScene scene = new ArcGISScene(Basemap.createImagery()); mSceneView.setScene(scene); Surface surface = new Surface(); ArcGISTiledElevationSource elevationSource = new ArcGISTiledElevationSource( getString(R.string.world_elevation_service_url)); surface.getElevationSources().add(elevationSource); scene.setBaseSurface(surface); mSceneOverlay = new GraphicsOverlay(); mSceneOverlay.getSceneProperties().setSurfacePlacement(LayerSceneProperties.SurfacePlacement.ABSOLUTE); mSceneView.getGraphicsOverlays().add(mSceneOverlay); Camera camera = new Camera(38.459291, -109.937576, 5500, 150.0, 20.0, 0.0); mSceneView.setViewpointCamera(camera); Point locationPoint = new Point(-109.929589, 38.437304, 1700, SpatialReferences.getWgs84()); mOrbitLocationCameraController = new OrbitLocationCameraController(locationPoint, 5000); mOrbitLocationCameraController.setCameraPitchOffset(3); mOrbitLocationCameraController.setCameraHeadingOffset(150); <START> mModelSceneSymbol = loadModel(); <END> mModelSceneSymbol.addDoneLoadingListener(() -> { mOrbitPlaneCameraController = new OrbitGeoElementCameraController(mPlane3D, 100.0); mOrbitPlaneCameraController.setCameraPitchOffset(30); mOrbitPlaneCameraController.setCameraHeadingOffset(150); }); }</code><technical_language>I this is needed for this sample loadModel immediately add ModelSceneSymbol a graphic, a graphics overlay (which prevent garbage collection)</technical_language>

Target:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); copyFileFromAssetsToCache(getString(R.string.bristol_model)); copyFileFromAssetsToCache(getString(R.string.bristol_skin)); setupToolbar(); mSceneView = findViewById(R.id.sceneView); ArcGISScene scene = new ArcGISScene(Basemap.createImagery()); mSceneView.setScene(scene); Surface surface = new Surface(); ArcGISTiledElevationSource elevationSource = new ArcGISTiledElevationSource( getString(R.string.world_elevation_service_url)); surface.getElevationSources().add(elevationSource); scene.setBaseSurface(surface); mSceneOverlay = new GraphicsOverlay(); mSceneOverlay.getSceneProperties().setSurfacePlacement(LayerSceneProperties.SurfacePlacement.ABSOLUTE); mSceneView.getGraphicsOverlays().add(mSceneOverlay); Camera camera = new Camera(38.459291, -109.937576, 5500, 150.0, 20.0, 0.0); mSceneView.setViewpointCamera(camera); Point locationPoint = new Point(-109.929589, 38.437304, 1700, SpatialReferences.getWgs84()); mOrbitLocationCameraController = new OrbitLocationCameraController(locationPoint, 5000); mOrbitLocationCameraController.setCameraPitchOffset(3); mOrbitLocationCameraController.setCameraHeadingOffset(150); loadModel().addDoneLoadingListener(() -> { mOrbitPlaneCameraController = new OrbitGeoElementCameraController(mPlane3D, 100.0); mOrbitPlaneCameraController.setCameraPitchOffset(30); mOrbitPlaneCameraController.setCameraHeadingOffset(150); }); }