2011-06-27 22 views
0

に戻って...どのように私は自分のアプリケーションのために再実装バックボタンにしたい私のアプリ

たとえば、ユーザーが携帯電話の[戻る]ボタンをクリックしたときにアプリが最後のページに移動しますこのページが最初のものであれば、アプリケーションを終了する

私はすでにインターネット上で見つけた多くのソリューションを試しましたが、どれもうまくいきませんでした。私はすでに試した

ソリューション:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      moveTaskToBack(true); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

@Override 
    public void onBackPressed() 
    { 
     moveTaskToBack(true); 
       return; 
    } 

私は成功事例のを得た唯一の方法はこれです:

public boolean dispatchKeyEvent(KeyEvent event) { 
    // Handling the back button 
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { 

    Intent i = new Intent(this,BtConn.class); 
    this.startActivity(i); 
    return true; 
    } else { 
    return super.dispatchKeyEvent(event); 
    } 
} 

が、それはあまりにも遅いです。

私のアプリケーションは、Android 2.1のため

------------- -------------編集

成功、しかし、1つ遅いですソリューション

@Override 
public void onBackPressed() { 

    if (contentView == R.layout.main){ 
     Log.d("AQUI", "entro"); 
     finish(); 
    }else{ 
     Log.d("AQUI", "nao entro"); 
     this.finish(); 
     Intent i = new Intent(this,BtConn.class); 
     this.startActivity(i); 
    } 
} 
+0

と呼ばれる最初のアクティビティに移動させ、あなたは達成しようとしています。 – Marmoy

+0

@Videre>質問をよくお読みください。バックプレスでは、ユーザーは打ち上げ活動に向かない! – Saty

答えて

0

this.finish();を呼び出してください。

+0

しかし、this.finish()は私のアプリケーションを終了します アプリケーションが他の画面にある場合は、最初の画面に戻りたいと思います。 – Shermano

+0

を呼び出すと、this.finish()を呼び出すと現在のアクティビティが終了し、最後のアクティビティ。 – Eric

+0

hummmありがとう、たくさんの男 – Shermano

0

使用この方法

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      Log.d("click","backButtonclicked"); 
      SingleHouse.this.startActivity(new Intent(SingleHouse.this, RentPage.class)); 
      moveTaskToBack(false); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

はthis.Hereに活動を実施SingleHouse.Iは、バックボタンのデフォルトの動作は何異なっているか教えてくださいバックRentPage

関連する問題