Personally, I'm a fan of having both. The default implementation can be an abstract class but have that abstract class implement the Activity interface. Developers will be making a conscious choice to use the interface only knowing that they can introduce bugs.
-- http://groups.google.com/group/Google-Web-Toolkit-Contributors