2012-08-02 57 views
0

这里是源代码。这是一个基本的启动画面,如果按下按钮backmenu,我想完成此活动。Android:如果按下返回或菜单按钮,则在启动画面期间退出应用程序?

try { 
    super.run(); 
    /** 
    * use while to get the splash time. Use sleep() to increase 
    * the wait variable for every 100L. 
    */ 
    while (wait < welcomeScreenDisplay) { 
    sleep(100); 
    wait += 100; 
    } 
} catch (Exception e) { 
    System.out.println("EXc=" + e); 
} finally { 
    /** 
    * Called after splash times up. Do some action after splash 
    * times up. Here we moved to another main activity class 
    */ 
    startActivity(new Intent(SplashScreenActivity.this, 
    StartActivity.class)); 
    finish(); 
} 

回答

1
@Override 
     public void onBackPressed() { 
      // TODO Auto-generated method stub 

      super.onBackPressed(); 
       finish(); 

    } 

使用上述方法来完成的活性。 这是重写方法前阵子或菜单按钮被按下

+0

感谢您的快速回答,但我应该在哪里放置? – user1570984 2012-08-02 10:11:15

+0

你可以把它放在活动内的任何地方我的朋友 – 2012-08-02 10:12:17

+0

非常感谢 – user1570984 2012-08-02 11:51:48

0

关闭活动执行以下闪屏类之一,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 

    if(keyCode == KeyEvent.KEYCODE_BACK) { 
     finish(); 
     return true; 
    } 
    else if(keyCode == KeyEvent.KEYCODE_MENU) { 
     finish(); 
     return true; 
    } 

    else 
     return super.onKeyDown(keyCode, event); 
} 
0

在这里你去。下面是一个Splash Screen动画的例子,我在启动下一个活动之前初始化一个等待动画的新线程,我使用synchronized,特别是如果我想停止它,可以在onTouchEvent和onKeyDown方法中看到它。

image.startAnimation(a); 
      timer = new Thread() { 
       public void run() { 
        try { 
         synchronized (this) { 
          wait(6500); // wait 6.5sec (animation time) 
         } 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } finally { 
// After the 6.5 sec, start the new activity 
         Intent intent = new Intent(Splash.this, Login.class); 
         startActivity(intent); 
        } 
       } 
      }; 
      timer.start(); 

public boolean onTouchEvent(MotionEvent event) { 
    synchronized (timer) { 
     timer.notifyAll(); 
    } 
    sound.release(); 
    finish(); 
    return super.onTouchEvent(event); 

} 

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     synchronized (timer) { 
      timer.notifyAll(); 
     } 
     sound.release(); 
     finish(); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

希望它有帮助!

相关问题