I'm struggeling with following problem: I'm developing a small 2D Adroid game on Eclipse ( I'm a greenhorn). The basic idea is too keep a figure on the screen and when it leaves it , it's Game Over. The basic classes are the GameActivity, the GameView, the Figure and a GameOverActivity. Since my gaming-background is drawn on a simple RecF I check when the figure leaves the screen by
public class Figure{
public RectF getBounds(){
       return new RectF(x, y, x + width, y+ height);
     }
}
---------------------------------
public class GameView extends SurfaceView {
private GameActivity theGameActivity = new GameActivity();
private RectF figurebounds;
public void checkifout() {
 figurebounds = figure.getBounds();
    if (!(background.intersect(figurebounds))) {
            theGameActivity.GameOver();  
   }
}
------------------------------------------
public class GameActivity extends Activity {
public void GameOver() {
    Intent theNextIntent = new Intent(getApplicationContext(), GameOverActivity.class);
    startActivity(theNextIntent);
    this.finish();
 }
}
The GameOverActivity is just a Layout with 2 buttons which allows to get back to the menu or replay
public class GameOverActivity extends Activity implements OnClickListener {
Button bReplay;
Button bBack;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gameoverscreen);
    initialize();
}
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.bReplay:
        Intent newGameScreen= new Intent(this, GameActivity.class);
        startActivity(newGameScreen);
        this.finish();
        break;
    case R.id.bBack:
        Intent newGameScreen2 = new Intent(this, MenuActivity.class);
        startActivity(newGameScreen2);
        this.finish();
        break;
    }
}
public void initialize(){
    bReplay = (Button) findViewById(R.id.bReplay);
    bReplay.setOnClickListener(this);
    bBack = (Button) findViewById(R.id.bBack);
    bBack.setOnClickListener(this);
}
At first I had the checkifout()-method within my onTouch-method (which is used to create another figures which have no influence on this issue) in the GameView-class , so I had to touch the screen after the figure fell off to get to the Gameover-screen, but at least it worked all fine:
public boolean onTouchEvent(MotionEvent event) {
    if (System.currentTimeMillis() - lastClick > 300) {
        lastClick = System.currentTimeMillis();
        synchronized (getHolder()) {
            xcor = event.getX();
            ycor = event.getY();
            checkifout();
        }
    }
    return true;
}
But I'd like the GameOver-screen appear without another Touchevent.
Now when I call the checkifout()-method within my draw-method (also within the GameView class):
public void draw(Canvas canvas) {
    drawBackGround(canvas);
    figure.draw(canvas);
    checkifout();
}
I get following problem: When my figure falls off the screen I do get the GameOver-screen, but after about a second it displays another time and when I go back to the main menu and try to exit the game I get back to the GameOverscreen, while replay stills works fine. I don't get those issues when I implement checkifout() in the OnTouchevent...
I thought it might be a problem of calling the checkifout()-method multiple times, so I tried to fix the issue by using a boolean like this : 
private boolean gameover = false;
public void draw(Canvas canvas) {
    drawBackGround(canvas);
    figure.draw(canvas);
    if (!gameover)
        checkifout();
}
public void checkifout() {
 figurebounds = figure.getBounds();
    if (!(background.intersect(figurebounds))) {
            theGameActivity.GameOver();
            gameover=true;  
   }
But that gave me a NullPointerException.I also tried to create the checkifout-method within the Figure class and call it in the draw-method of the Figure-class, but that caused the same errors. So I hope someone has got an idea or just knows the mistake I've done here. Thanks for taking the time.
PS: Here is the MenuActivity (Layout with 2 buttons) in case it's needed:
public class MenuActivity extends Activity implements OnClickListener {
ImageButton bPlay;
ImageButton bExit;
@Override
public void onClick(View v) {
    switch(v.getId()){
    case R.id.bPlay:
        Intent newGameScreen = new Intent(this, GameActivity.class);
        startActivity(newGameScreen);
        this.finish();
        break;
    case R.id.bExit:
        this.finish();
        break;
    }
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainmenu);
    initialize();
}
public void initialize(){
    bPlay = (ImageButton) findViewById(R.id.bPlay);
    bPlay.setOnClickListener(this);
    bExit = (ImageButton) findViewById(R.id.bExit);
    bExit.setOnClickListener(this);
}
}