2013-05-20 237 views
7

我已经覆盖了我的活动中的OnBackPressed函数,但它没有被调用。在其他活动,它工作正常。 这里是我的方法:OnBackPressed没有被调用?

@Override 
public void onBackPressed() { 
    Log.e("back",""+1); 
    UserPage.getstate().finish(); 
    Intent i=new Intent(CreateGroup.this,UserPage.class); 
    i.putExtra("title11","dd"); 
    startActivity(i); 
    finish(); 
} 

这种方法不会被调用,默认OnBackPresssed叫我每次按后退按钮的时间。

+3

什么是“UserPage.getstate()。finish();”在做什么? –

+0

你有这个Log.e(“back”,“”+ 1);在日志中? –

+0

我已经在UserPage中使用了一个静态函数来获取活动的状态,然后我正在完成它。 –

回答

7

试试这个代码

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
    } 
    return true; 
} 
+0

我有alrady试过这个,它不工作。 –

+0

我在UserPage活动中使用onStop和onRestart方法。这与这有什么关系? –

+0

除了改变活动,你看到日志?或后退按钮不工作?你是什​​么android版本btw? –

4

你试过吗? ,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back pressed. 


     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
2
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
6

也有类似的问题。对我来说,问题在于我的onKeyDown()隐藏了KEYCODE_BACK keydown事件的重写。

相关问题