package com.guo.duoduo.airplayreceiver; import java.util.concurrent.ConcurrentHashMap; import android.app.Application; import android.content.Intent; import android.content.IntentFilter; import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Message; import com.guo.duoduo.airplayreceiver.receiver.NetWorkReceiver; import com.guo.duoduo.airplayreceiver.receiver.ScreenStateReceiver; /** * Created by Guo.Duo duo on 2015/8/25. */ public class MyApplication extends Application { private static MyApplication instance; private ConcurrentHashMap<String, Handler> mHandlerMap = new ConcurrentHashMap<String, Handler>(); public static MyApplication getInstance() { return instance; } public static void broadcastMessage(Message msg) { for (Handler handler : getInstance().getHandlerMap().values()) { handler.sendMessage(Message.obtain(msg)); } } @Override public void onCreate() { super.onCreate(); instance = this; IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF); screenStateFilter.addAction(Intent.ACTION_SCREEN_ON); ScreenStateReceiver screenStateReceiver = new ScreenStateReceiver(); registerReceiver(screenStateReceiver, screenStateFilter); NetWorkReceiver netWorkReceiver = new NetWorkReceiver(); IntentFilter wifiFilter = new IntentFilter(); wifiFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); registerReceiver(netWorkReceiver, wifiFilter); } public ConcurrentHashMap<String, Handler> getHandlerMap() { return mHandlerMap; } }