
<code>01</code>
<code>public</code> <code>class</code> <code>SplashScreen </code><code>extends</code> <code>Activity {</code>
<code>02</code>
<code> </code>
<code>03</code>
<code> </code><code>/**</code>
<code>04</code>
<code> </code><code>* The thread to process splash screen events</code>
<code>05</code>
<code> </code><code>*/</code>
<code>06</code>
<code> </code><code>private</code> <code>Thread mSplashThread; </code>
<code>07</code>
<code>08</code>
<code> </code><code>/** Called when the activity is first created. */</code>
<code>09</code>
<code> </code><code>@Override</code>
<code>10</code>
<code> </code><code>public</code> <code>void</code> <code>onCreate(Bundle savedInstanceState) {</code>
<code>11</code>
<code> </code><code>super</code><code>.onCreate(savedInstanceState);</code>
<code>12</code>
<code>13</code>
<code> </code><code>// Splash screen view</code>
<code>14</code>
<code> </code><code>setContentView(R.layout.splash);</code>
<code>15</code>
<code> </code>
<code>16</code>
<code> </code><code>final</code> <code>SplashScreen sPlashScreen = </code><code>this</code><code>; </code>
<code>17</code>
<code>18</code>
<code> </code><code>// The thread to wait for splash screen events</code>
<code>19</code>
<code> </code><code>mSplashThread = </code><code>new</code> <code>Thread(){</code>
<code>20</code>
<code> </code><code>@Override</code>
<code>21</code>
<code> </code><code>public</code> <code>void</code> <code>run(){</code>
<code>22</code>
<code> </code><code>try</code> <code>{</code>
<code>23</code>
<code> </code><code>synchronized</code><code>(</code><code>this</code><code>){</code>
<code>24</code>
<code> </code><code>// Wait given period of time or exit on touch</code>
<code>25</code>
<code> </code><code>wait(</code><code>5000</code><code>);</code>
<code>26</code>
<code> </code><code>}</code>
<code>27</code>
<code> </code><code>}</code>
<code>28</code>
<code> </code><code>catch</code><code>(InterruptedException ex){ </code>
<code>29</code>
<code>30</code>
<code>31</code>
<code> </code><code>finish();</code>
<code>32</code>
<code> </code>
<code>33</code>
<code> </code><code>// Run next activity</code>
<code>34</code>
<code> </code><code>Intent intent = </code><code>new</code> <code>Intent();</code>
<code>35</code>
<code> </code><code>intent.setClass(sPlashScreen, MainActivity.</code><code>class</code><code>);</code>
<code>36</code>
<code> </code><code>startActivity(intent);</code>
<code>37</code>
<code> </code><code>stop(); </code>
<code>38</code>
<code> </code><code>}</code>
<code>39</code>
<code> </code><code>};</code>
<code>40</code>
<code>41</code>
<code> </code><code>mSplashThread.start();</code>
<code>42</code>
<code>43</code>
<code> </code><code>}</code>
<code>44</code>
<code>45</code>
<code>46</code>
<code> </code><code>* Processes splash screen touch events</code>
<code>47</code>
<code>48</code>
<code>49</code>
<code> </code><code>public</code> <code>boolean</code> <code>onTouchEvent(MotionEvent evt)</code>
<code>50</code>
<code> </code><code>{</code>
<code>51</code>
<code> </code><code>if</code><code>(evt.getAction() == MotionEvent.ACTION_DOWN)</code>
<code>52</code>
<code> </code><code>{</code>
<code>53</code>
<code> </code><code>synchronized</code><code>(mSplashThread){</code>
<code>54</code>
<code> </code><code>mSplashThread.notifyAll();</code>
<code>55</code>
<code>56</code>
<code> </code><code>}</code>
<code>57</code>
<code> </code><code>return</code> <code>true</code><code>;</code>
<code>58</code>
<code>59</code>
<code>60</code>
<code>}</code>