首页 > 代码库 > Android学习笔记_74_可以通过广播来通知回调函数触发

Android学习笔记_74_可以通过广播来通知回调函数触发

1、比如登录。假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象传入即可。但是在Activity中不能传递监听对象,所以考虑使用广播来实现。

public void login(final LoginOnClickListener listener) {
        Intent intent = new Intent(context, LoginActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        BroadcastReceiver mReceiver = new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                listener.handleLogin(true, "receiver .. BroadcastReceiver .. ");
            }
        };
        IntentFilter intentFilter = new IntentFilter("android.intent.action.MAIN");
        context.registerReceiver(mReceiver, intentFilter);
        context.startActivity(intent);
}

2、在LoginActivity类中登录成功之后,发送一个广播通知登录成功。

 Intent intent = new Intent("android.intent.action.MAIN");  
 sendBroadcast(intent);

参考:http://buddie.iteye.com/blog/977352