IntermediateTECHNICAL
Given an Android screen implemented with Kotlin coroutines, explain how you would structure coroutine scopes and manage cancellation to avoid leaks and UI updates after the user navigates away; include how lifecycle components (ViewModel, LifecycleOwner) factor in.
Android Developer
General

Sample Answer

On a recent feature for 500k monthly users I used ViewModelScope for long-lived work and lifecycleScope for UI-bound coroutines. I kept heavy IO in viewModelScope.launch(Dispatchers.IO) and exposed results as StateFlow to the UI, so the Activity/Fragment just collected using lifecycleScope.repeatOnLifecycle(Lifecycle.State.STARTED). That ensures collectors cancel automatically when paused and restart on resume, preventing stale UI updates. For cancellable child work I used supervisorScope and job.cancel() in ViewModel.onCleared for any external jobs. This pattern removed intermittent crashes we saw when navigating quickly and cut accidental memory retention by roughly 30% in a heap-snapshot audit.

Keywords

Use ViewModelScope for business logic and lifecycleScope.repeatOnLifecycle for UI collectionDispatchers.IO for IO, StateFlow/SharedFlow to communicate stateExplicit cancellation (jobs, onCleared) and supervisorScope for structured concurrency
Related Questions

Based on your hydrology and irrigation engineering background, explain how you would estimate the irrigation water requirement for a kharif crop in a semi-arid region of Gujarat. Walk me through each step: from reference evapotranspiration estimation, crop coefficient selection, effective rainfall calculation, to arriving at canal discharge for a given command area.

IntermediateTECHNICAL

In your civil engineering studies, what specific design coursework or project work did you complete related to irrigation channels or canals (e.g., design of lined/unlined canals, distributaries, minors)? Describe one such design in detail, including how you determined discharge, permissible velocity, section dimensions, and lining choice for Gujarat-type soil and climate conditions.

IntermediateTECHNICAL

Walk me through a recent multi-channel digital marketing campaign you managed end-to-end. How did you set objectives, choose channels, allocate budget, and measure success?

IntermediateBEHAVIORAL

On your resume you mention working on a cross-functional project (e.g., involving multiple teams or stakeholders). Describe a situation from that project where priorities conflicted—how did you navigate the trade-offs and what was the final outcome?

IntermediateSITUATIONAL

In your resume you note improving or optimizing [a process, KPI, or metric]. What specific baseline metrics did you start from, what steps did you personally take, and how did you verify that the improvement was due to your changes rather than external factors?

IntermediatePROBLEM_SOLVING