This struck me as being more complicated than warranted. I took a crack at it myself in http://gwt-code-reviews.appspot.com/1386806/, but I may be making some bad assumptions.
http://gwt-code-reviews.appspot.com/1383802/diff/1/user/src/com/google/gwt/activity/shared/AbstractAsyncActivity.java File user/src/com/google/gwt/activity/shared/AbstractAsyncActivity.java (right): http://gwt-code-reviews.appspot.com/1383802/diff/1/user/src/com/google/gwt/activity/shared/AbstractAsyncActivity.java#newcode26 user/src/com/google/gwt/activity/shared/AbstractAsyncActivity.java:26: * onCancel. These docs are a bit confusing. All Activities are async, but what you're really talking about here is code splitting via GWT.runAsync() http://gwt-code-reviews.appspot.com/1383802/diff/1/user/src/com/google/gwt/activity/shared/AsyncActivityProvider.java File user/src/com/google/gwt/activity/shared/AsyncActivityProvider.java (right): http://gwt-code-reviews.appspot.com/1383802/diff/1/user/src/com/google/gwt/activity/shared/AsyncActivityProvider.java#newcode85 user/src/com/google/gwt/activity/shared/AsyncActivityProvider.java:85: * Transforms the given synchronous activity into an asynchronous one. Again, "synchronous activity" isn't a good term. http://gwt-code-reviews.appspot.com/1383802/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors