可以从服务中检测到后退按钮吗?
正如标题所说的那样?我做了很多谷歌搜索,但无法找到明确的答案。 还没办法吗?
答案 0 :(得分:4)
可以从服务中检测到按钮按下吗?
不,抱歉。如果您在前台有活动,则活动可以检测到BACK按下。如果前台没有活动,则BACK按钮与您的代码无关。
答案 1 :(得分:2)
不要这么认为。后退按钮是在活动级别管理的,而服务完全与此级别分开。
您唯一的方法就是将活动中的反压传达给您的服务。但是,您需要将您的活动放在前台。
答案 2 :(得分:0)
如果通过您的服务添加视图或其他内容,则可以使用“编辑文本”框捕获反向按。只需设置其onKeyListerner即可。 (隐藏其他视图后面的edittext框)
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.d("TAG", "onKey() called with: " + "v = [" + v + "], keyCode = [" + keyCode + "], event = [" + event + "]");
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction()== KeyEvent.ACTION_UP){
onBackPress();
}
return false;
}
});