这篇文章给大家介绍怎么在Android应用中实现一个全局返回功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
思路
废话不多说了,说说主要的思路吧,关键的一个类就是:AccessibilityService
,官方文档地址,这个类与手机里面的一个功能密切相关:辅助功能-服务。官方文档来看,这个功能是为了方便有障碍的人士更好的使用手机。我们这里就不展开介绍里面的API了,为了实现我们的全局返回功能,我们只需要使用一个函数即可:boolean performGlobalAction (int action),
官方解释如下:
Performs a global action. Such an action can be performed at any moment regardless of the current application or user location in that application. For example going back, going home, opening recents, etc.
翻译过来就是:
执行全局动作。无论该应用程序中的当前应用程序或用户位置如何,都可以随时执行此类操作。例如执行HOME键,BACK键,任务键等
其中可以传入的参数有四个:
- GLOBAL_ACTION_BACK
- GLOBAL_ACTION_HOME
- GLOBAL_ACTION_NOTIFICATIONS
- GLOBAL_ACTION_RECENTS
从字面就可以理解,我们返回功能需要的就是GLOBAL_ACTION_BACK。所以我们只需要开启服务,调用函数就可以实现全局返回功能了。
编写代码
最重要的服务类
我们要新建一个类去继承自上面那个类:
public class MyAccessibilityService extends AccessibilityService { public static final int BACK = 1; public static final int HOME = 2; private static final String TAG = "ICE"; @Override public void onCreate() { super.onCreate(); //使用EventBus代替广播 EventBus.getDefault().register(this); } @Override public void onAccessibilityEvent(AccessibilityEvent event) { } @Override public void onInterrupt() {} @Subscribe public void onReceive(Integer action){ switch (action){ case BACK: performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK); break; case HOME: performGlobalAction(AccessibilityService.GLOBAL_ACTION_HOME); break; } }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 在 Java 中,JLabel 的文本是否能够实现旋转?(java中jlabel的文本能否实现旋转)
- Java编程中 abstract 类和方法的详细解析与应用指南(java编程abstract类和方法详解)
- 如何判断 Java 数组中是否存在重复元素?(Java怎么判断数组是否有重复元素)
- Java 中魔法值究竟是什么含义?(java魔法值是什么意思)
- 在 Java 开发中,Javase 究竟扮演着怎样的角色?(Javase在Java开发中扮演什么角色)
- 在 Java 中如何实现 base64 到 blob 的转换?(Java中base64转blob怎么实现)
- Java 中 clazz 类创建的方式有哪些?(java clazz类创建的方式是什么)
- 如何正确使用 Java PersistenceContext 类?实例详解!(Java PersistenceContext类使用实例)
- Java 中 Quartz 框架究竟是什么?(java中quartz是什么框架)
- PHP数据类型转换对存储方式的影响