change the schedule executor to handler.
add condition to avoid duplicate register broadcast receiver