improve UITaskListener: remove UI annotation and use reflection to get declaring class