I have faced with the problem. My Activity
is fragment container, so to communicate between activity and fragments I used common Callback
approach.
For simple one Activity to one Fragment hierarchy, callback is simplest decision to go. But think about Activity containing a Fragment, and the Fragment contains swipe-able ViewPager
, and each tab of ViewPager has Fragments A,B,C.
The Fragment A,B,C will go to long journey to send event to mother Activity, and it can be lost interface connectivity between Activity and children when they are restored during crazy complex Android Activity-Fragment lifecycle dances. In this case, eventbus like otto can be a good choice.
The drawback of event bus approach is, it is hard to maintain where the event is come from. So, keeping a few sender is recommended.
Your interface
approach is awesome, just keep up with them, and maybe try and slice/make your interface
static and add all the little little void
s and return method
s to that interface so you can just implement one and call the functions.
EventBus
? how about LocalBroadcastReceiver
? its a matter of preference and which one you feel will suit you better, after all if you handle 10,000 request and hate having 100 interface
s, you will end up using 1 and nesting 99.
& just forgot, it is better to hold alot Fragment
instead of Activity
because at the end of the day the Activity
lifecycle is pretty hard to maintain second of all you can not really control Activity
ies well all as compared to Fragment
s and Fragment
is a good slave, serves you better
hope its valuable