La politique Android si la diffusion fonctionne plus de 10 secondes, se produire boîte de dialogue ANR. Donc, je pense que mon émission fonctionne plus de 10 secondes. parce que beaucoup travaillent cette diffusion.Pourquoi le message ANR Broadcast of Intent s'affiche-t-il sur Android?
ma diffusion lorsque CONNECTIVITY_ACTION
sur mon appareil.
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
int iNetworkType = (activeNetwork == null) ?-1: activeNetwork.getType(); //null check
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
new getPubIp().execute(); //Execute AsyncTask
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (iNetworkType == connectivityManager.TYPE_ETHERNET) {//connect ethernet
EthernetConnectTimeDB ethernet;
ethernet = new EthernetConnectTimeDB();
ethernet.start(); //DB Insert work.
SystemClock.sleep(500); // sleep
MainActivity.display("value", "value", value"); //display UI
}
}
}
ce récepteur, beaucoup de travail. DB travail, travail d'affichage, travail asynctask.
Comment réparer se produire ANR dialogue sur android?
merci.