android-后台应用程序以侦听拖动手势
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android-后台应用程序以侦听拖动手势,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1472字,纯文字阅读大概需要3分钟。
内容图文
我需要注册一个广播接收器,它将告诉我整个系统中的任何Drag事件.我的应用程序将在后台运行并执行任何任务,如果发生任何类型的Drag事件,即使其他任何应用程序都在前台运行.可能吗?关于我该怎么做的任何想法?
更新:不要以为我会做键盘记录器.我的应用程序将可见,但将在后台运行.我只想检测一下Drag事件(向左拖动,向右拖动,向上拖动和向下拖动).
如果您能告诉我如何在其他任何应用程序上方显示4个永久不变的按钮,我将接受任何答案,因为这也可以为我提供所需的服务.
解决方法:
根据您的链接,您的应用程序可以作为服务运行而无需“正常” UI即可运行,但是我认为您链接的代码可能有些过时了.
请记住,您的服务必须在前台运行-代码在您的链接中提供,但未明确调用.如果不在前台运行,系统很可能会停止您的应用程序,而不是在后台运行它.
当我使用此类叠加创建任务切换器时,我发现有必要使用TYPE_SYSTEM_ALERT而不是TYPE_SYSTEM_OVERLAY.
> Android 4.x – System Overlay – Cannot capture touch events
我声明了没有FLAG_WATCH_OUTSIDE_TOUCH的窗口参数.
WindowManager.LayoutParams params =
new WindowManager.LayoutParams(width, height, x, y,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
您的服务还应确保在结束时从WindowManager正确注销叠加视图.否则,您的应用程序将泄漏内存.
public void onDestroy()
{
super.onDestroy();
if (overlay != null)
{
((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(overlay);
overlay = null;
}
}
我看到这是在OverlayView.destory()中完成的(请注意该方法名称的拼写不正确-为该方法使用正确的名称是一个好主意).
内容总结
以上是互联网集市为您收集整理的android-后台应用程序以侦听拖动手势全部内容,希望文章能够帮你解决android-后台应用程序以侦听拖动手势所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。