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

时间:2018-06-18 19:08:45

标签: android

如何禁用上述按钮或将其设置为什么都不做? 我知道这是可能的,因为(按钮映射器)使用辅助功能服务做到了! 即使使用root访问权限。 我怎么能用android studio呢? 你能分享/编写代码吗?

2 个答案:

答案 0 :(得分:0)

活动进入后台时执行代码

@Override    
onBackButtonPressed(){
 //do nothing
}

这将完成后退按钮的工作

主页按钮/ recent_button:我认为你正在尝试做一些事情,比如暂停音乐活动就会消失。如果是这种情况,请阅读Activity Lifecycle - Medium post以获得答案。我将简要介绍一下活动生命周期

  • 活动开始时,调用onCreate()方法,然后调用onStart(),后跟onResume()

  • 当活动在后台并到达前台时, onCreate没有被调用!相反,调用onStart(),然后调用 onResume()当一个活动进入后台时,调用onPause()

  • 如果不再需要后台活动, 调用onStop()如果背景上的活动即将来临 删除

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

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

请将您的代码设置为在屏幕上不再显示您的应用时执行,

@Override
onStop(){
  //your code
}

更多阅读,Activity lifecycle

后台流程

示例:在后台下载歌曲的应用

您应该阅读Android中的服务:enter link description here。服务在后台运行,与系统一起运行。确保您在新线程中执行该服务,而不是在您的UI线程上执行该服务,否则当Activity停止,停止或销毁状态时,您的应用程序将无法响应和/或服务停止运行。换句话说,服务不能在自己的线程上运行

在此处阅读Android上的线程等背景流程:enter link description here

学习服务和主题的最佳资源是This TeamTreeHouse Course

古德勒克!

答案 1 :(得分:0)

解决

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);
        }
    }
}