You can't do this here, because you don't know if the level has actually changed.  You don't want to clear a persistent message if you're just going to display another one.

Wilson's comment below is right: this function should just return the current status and do nothing else.  Once you get the current status you can compare it to the last known status and decide whether notifications need to be shown.