这是对上一篇的补充:
如何合理的监听程序中一个变量的变化。
有时候,我们在程序中会设定一个变量作为标志,而程序需要监听这个标志,当这个标志发生改变时,程序做出相应的处理。
主要的代码解释如下:
1、将变量放置在一个类中,在该类中对变量有get 、set方法,并在set方法中做回调。
2、在这里,我们还提供一个方法供程序传入监听接口。
3、将类的引用作为单例,便于后续设置监听位置。
package com.example.broadcastwithobserver;
public class Var {
private BroadListener broadListener;
private int var;
private static Var varInstance;
private Var(){
}
public static Var getInstance(){
if(null==varInstance)
{
varInstance=new Var();
}
return varInstance;
}
public void setBroadListener(BroadListener broadListener){
this.broadListener=broadListener;
}
/**
* @return the var
*/
public int getVar() {
return var;
}
/**
* @param var the var to set
*/
public void setVar(int var) {
this.var = var;
if(null!=broadListener){
if(var==1){
broadListener.onSuccess();
}
else {
broadListener.onFail("收到失败回复");
}
}
}
}
使用监听方式如下:
Var.getInstance().setBroadListener(new BroadListener() {
@Override
public void onSuccess() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "监听器接收到广播了!!!", 0).show();
}
@Override
public void onFail(String msg) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,msg, 0).show();
}
});
当我们做如下操作时,监听就起效,做出回调了:
Var.getInstance().setVar(0);