问题
在进行模块化的时候,试图将诸如SearchListener, CallManager 的模块从MainActivity中拆出来,然而在响应事件的时候,不可避免的需要改变其他资源状态,那么就需要获取其句柄。由此还需要把MainActivity作为句柄传入代码。
更令人纠结的是,由于存在一些异步事件(如申请权限),其触发在模块(CallManager)中,其接受在主体视图(MainActivity)中,又需要将保有的参数重新传回MainActivity,如此绕来绕去,让我不禁反思我模块化时候存在的问题。
细节
1 | CallManager.java |
在Activity中接收到call event调用CallManager,然后在其中请求权限,利用Set方法,将PhoneNumber传回Activity。初步想法是可以将请求权限、被授予权限后执行回调函数这种和Activity紧耦合的代码方法写在MainActivity中,然后CallManager只处理call逻辑。但仍需要一个类变量来保存电话号码,以进行从请求权限到执行回调之前的参数传递工作。