Androidのポリシーがブロードキャストの場合、10秒以上経過すると、ANRダイアログが表示されます。アンドロイドでANR放送のインテントメッセージがなぜ発生するのですか?
だから、私の放送は10秒以上働くと思う。多くの人がこの放送を担当しているからです。
私のブロードキャスト私のデバイスでCONNECTIVITY_ACTION
しています。
@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
}
}
}
このレシーバは、多くの作品。 DB作業、表示作業、asynctask作業。
アンドロイドでANRダイアログが表示されるのを修正する方法はありますか?
ありがとうございました。