# Android SDK Lifecycle ## Startup 1. Initialize once in `Application.onCreate`. 2. Optionally set/update context user name before channel launch. ## Channel Initialization 1. Get service from `ZoomCCInterface`. 2. Build `ZoomCCItem` with: - `sdkType` - `entryId` or `apiKey` - `serverType` - campaign fields when needed 3. `service.init(item)`. 4. Add listener(s). ## Launch 1. Chat/ZVA: - call `login()` then `fetchUI()`. 2. Video: - configure preview/auto-join options as needed. - call `fetchUI()`; login is typically internal for video flow. 3. Scheduled callback: - init with `apiKey`. - `fetchUI()`. ## End and Cleanup 1. End engagement (`endChat` / `endVideo`) when needed. 2. `logoff()` when you need to stop callbacks. 3. `releaseZoomCCService(key)` in teardown paths (`onDestroy`). ## Campaign Mode 1. Request campaigns with campaign API key. 2. Select channel from campaign metadata. 3. Reinitialize service using campaign-mode item. 4. Release or end conflicting channel services before switch.