wifi连接时会收到两次连续的广播导致程序执行多次,此时可以单例模式创建一个类,在这个类中新增一个变量来判断,当接收到第一次时修改变量值,等第一次执行完后再恢复变量值。
//单例模式创建WifiUtils.class
public class WifiUtils { private static WifiUtils utils = null; public int receiver = 1;
public WifiUtils(Context context) { }
public static WifiUtils getInstance(Context context) { if (utils == null) { synchronized (WifiUtils.class) { if (utils == null) { utils = new WifiUtils(context); } } } return utils; }
}
//广播接收器中
if (WifiUtils.getInstance(mContext).getReceiver() == 1) { WifiUtils.getInstance(mContext).setReceiver(0); updateData(wifiInfo); }
//等updateData执行完后再WifiUtils.getInstance(mContext).setReceiver(1);