내 앱이 닫힌 경우에도 볼륨 작게 버튼을 눌러 알림 상자를 열려고합니다. 도와 주실 수 있는지 알려주세요.Android의 하드웨어 버튼을 재정 의하여 UI를 업데이트 할 수 있습니까?
0
A
답변
0
이 시도 :
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_DOWN) {
//Alert dialog code here
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("Your Title");
// set dialog message
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
//TODO
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
0
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN:
break;
}
return false;
}
- 가 수행해야합니다.
1
다른 답변은 앱이 종료되지 않은 경우에만 작동합니다. OP는 앱이 폐쇄 된 경우에도이를 수행 할 수 있는지 질문했습니다. 간단히 말해서 백그라운드에서 서비스를 만들지 만 서비스가 주요 콜백 이벤트를 수신하지 않아도 작동하지 않기 때문입니다. This post은 해결 방법을 보여 주지만 모든 ROM에서 작동하는 가능성은 낮습니다.
'내 앱이 닫힌 경우에도'배경 서비스를 사용해야합니다. –
[여기를보세요] (http://stackoverflow.com/a/12793599/2591002) 및 [서비스가 KeyEvent 콜백을받지 못함] (http://stackoverflow.com/a/11397294/2591002) –