Need a simple maintainable design pattern for a game in Android
<p>I have a simple game</p>

<p>It displays a list of items that the user selects from with game timer.</p>

<p>I am using native Android widgets in an Activity and a Service to control the game.  This has turned out to be cumbersome and my Activity is getting bloated and difficult to maintain.</p>

<ol>
<li>I have a timer (currently I am using a count down timer)</li>
<li>I need to keep track of scores and rounds</li>
<li>I need to restore the state when the game changes orientation</li>
<li>I need to access a database.</li>
<li>I need different states in the game (buttons cannot be pressed, and sometimes they can)</li>
<li>I need to pull as much out of the Activity as I can</li>
</ol>

<p>I don't need a canvas, but can someone suggest the best pattern I could use for this?  What are the main classes I would have, do I need a game thread etc.</p>
