onChange is async, be defensive there

in case activity was already destroyed by the time the dispatch came through