1. Extend net.rim.device.api.ui.container.MainScreen.
2. In protected void sublayout(int width, int height) call Display.getOrientation() and compare it with the previous value. When a change in orientation is detected, discard all cached screen size calculations and call invalidate(). And, of course, call super.sublayout at the end.
参考:
http://supportforums.blackberry.com/t5/Java-Development/App-won-t-rotate-on-storm/m-p/308475