0

我试图在服务运行时阻止 HOME 按钮 KeyPress

protected void onPause () {
   if (isMyServiceRunning())
   {
       Intent Act2Intent = new Intent(PhysicalTheftDialog.this, PhysicalTheftDialog.class);              
       startActivity(Act2Intent);
   }
   else {

   }
}

private boolean isMyServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if ("nyp.android.project.MyService".equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}

但是每次当我按下我的主页按钮时,应用程序都会崩溃。

4

1 回答 1

1

请看,出于安全原因,android 开发人员本身不允许我们使用主页按钮更改任何类型的行为。但即使你真的想禁用主页按钮,你也可以通过添加以下代码来做到这一点:

@Override
public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

@Override    
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_HOME) {
        Log.i("Home Button","Clicked");
    }

    if(keyCode==KeyEvent.KEYCODE_BACK) {

        finish();
    }
    return false;
}
于 2012-08-07T04:12:50.387 回答