重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家介绍怎么在Android应用中实现一个全局返回功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
虞城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!思路
废话不多说了,说说主要的思路吧,关键的一个类就是: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。所以我们只需要开启服务,调用函数就可以实现全局返回功能了。
编写代码
最重要的服务类
我们要新建一个类去继承自上面那个类:
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; } } }