onEvent will run automatically on UiThread