繁体   English   中英

禁用/不执行任何操作(返回,最近和主页按钮)!

[英]disable/do nothing ( back , recent ,and home buttons)!

如何禁用上述按钮或将其设置为不执行任何操作? 我知道这是可能的,因为(按钮映射器)使用辅助功能服务了! 即使使用root访问。 我如何使用android studio来做到这一点? 您可以共享/编写该代码吗?

活动进入后台时执行代码

@Override    
onBackButtonPressed(){
 //do nothing
}

这将完成后退按钮的工作

主页按钮/最近按钮:我认为您正在尝试做一些事情,例如在活动中暂停音乐消失。 如果是这种情况,请阅读有关“ 活动生命周期-中”的信息以获取答案。 我将为您简要介绍活动生命周期

  • 活动开始时,先调用onCreate()方法,再调用onStart(),再调用onResume()

  • 当活动在后台并进入前台时,不会调用onCreate! 相反,先调用onStart(),再调用onResume()当活动进入后台时,调用onPause()

  • 如果不再需要后台活动运行,则将调用onStop()。如果将要删除后台活动

  • 当活动进入后台时,将调用onPause()和onStop()

  • 如果不再需要该活动,则调用onDestroy()清除内存

当您的应用程序在屏幕上不再可见时,请放置代码以执行,

@Override
onStop(){
  //your code
}

阅读更多, 活动生命周期

后台进程

示例:一个应用程序在后台下载歌曲

您应该阅读有关Android服务的信息: 在此处输入链接描述 服务在系统中与后台一起运行。 确保在新线程(而不是UI线程)上执行服务,否则当“活动”进入暂停,停止或销毁状态时,应用程序将变得无响应和/或服务停止运行。 换句话说,服务不会在自己的线程上运行

在此处了解有关Android线程等后台进程的信息:在此处输入链接说明

学习TeamTreeHouse课程是学习服务和线程的最佳资源

祝好运!

解决了

public class example extends AccessibilityService {
    @Override
    protected boolean onKeyEvent(KeyEvent event) {
        int action = event.getAction();
        int keyCode = event.getKeyCode();
        if (action == KeyEvent.ACTION_UP) {
            if (keyCode == 4 && getSharedPreferences("example",0).getBoolean("Back",false)) {
               return true;
            }
            else if (keyCode == 3 && getSharedPreferences("example",0).getBoolean("Home",false)) {
                return true;
            }
            else if (keyCode==KeyEvent.KEYCODE_APP_SWITCH && getSharedPreferences("example",0).getBoolean("Recent",false)){
                return true;
            }
            else {
                return false;
            }
        }
            else {
            return super.onKeyEvent(event);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM