Splash Screen
//Almanac //Copyright (C) 2011 Enrico Speranza //This program is free software: you can redistribute it and/or modify //it under the terms of the GNU General Public License as published by //the Free Software Foundation, either version 3 of the License, or //(at your option) any later version. // //This program is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //GNU General Public License for more details. // //You should have received a copy of the GNU General Public License //along with this program. If not, see <http://www.gnu.org/licenses/>. //package it.openalmanac; import android.app.Activity; import android.util.Log; import android.view.KeyEvent; import android.os.Bundle; import android.content.Intent; import android.view.MotionEvent; public class AlmanacSplash extends Activity { /** Called when the activity is first created. */ protected boolean m_bSplashActive = true; protected boolean m_bPaused = false; protected long m_dwSplashTime = 2000; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); // Very simple timer thread Thread splashTimer = new Thread() { public void run() { try { // Wait loop long ms = 0; while (m_bSplashActive && (ms < m_dwSplashTime)) { sleep(100); Log.d("OpenAlmanac:Debug", "While cicle "+ms); // Only advance the timer if we're running. if (!m_bPaused) ms += 100; } // Advance to the next screen. startActivity(new Intent( "com.google.app.splashy.CLEARSPLASH")); Log.d("Almanac:Debug", "Start: com.google.app.splashy.CLEARSPLASH"); } catch (InterruptedException e) { // Thread exception // System.out.println(e.toString()); Log.e("OpenAlmanac:Splash", e.toString()); } finally { finish(); } } }; splashTimer.start(); // setContentView(R.layout.splash); return; } // If we're stopped, make sure the splash timer stops as well. protected void onStop() { super.onStop(); } protected void onPause() { super.onPause(); m_bPaused = true; } protected void onResume() { super.onResume(); m_bPaused = false; } protected void onDestroy() { super.onDestroy(); } //When you touch a key, clear the Splash Screen public boolean onKeyDown(int keyCode, KeyEvent event) { // if we get any key, clear the Splash Screen super.onKeyDown(keyCode, event); m_bSplashActive = false; return true; } //When you touch the screen, clear the Splash Screen public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { m_bSplashActive = false; } return true; } }