Activities, services, fragments, helper classes etc. are main components of Android applications but its tricky to establish communication between these components. Itâ€™s tricky when one cares about writing reusable code â€“ loosely coupled, plug-n-play-able. The goal here is to avoid tight coupling. Tight coupling – Components keep references of each other and call methods on them directly. In the code below, we are keeping a reference of MagazineActivity inside MenuFragment. So, MenuFragment is tightly coupled with MagazineActivity i.e., it cannot function without MagazineActivity.