0

这是源代码。back这是一个基本的初始屏幕,如果按下或menu按钮,我想完成此活动。

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();
}
4

3 回答 3

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

            super.onBackPressed();
                finish();

    }

使用上述方法完成活动。这是按下后退或菜单按钮时关闭活动的覆盖方法之一

于 2012-08-02T10:05:33.467 回答
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);
}
于 2012-08-02T10:08:35.700 回答
0

干得好。这是一个带有启动画面动画的示例,我初始化了一个新线程,在启动下一个活动之前等待动画,我使用同步,特别是如果我想停止它,你可以在 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);
}

希望能帮助到你 !

于 2012-08-02T10:11:54.377 回答