博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android在特殊应用的特殊功能,以帮助通信系统的问题
阅读量:6036 次
发布时间:2019-06-20

本文共 1542 字,大约阅读时间需要 5 分钟。

                   在实际工程中的应用,进入一个特殊的应用后,系统的某个功能不能起作用。

当然,这个通信有非常多办法能够做到。笔者能够想到的至少有例如以下几种

1、利用property熟悉来实现,这种话须要添加一个特殊的属性;

2、利用数据库。在数据库中加一条记录,进入应用的时候设置一下。在系统部分能够利用content observer或者在特殊事件来的时候先推断读取一下这个值也能够。

3、利用intent,发一个特殊的intent出来,在系统这边装一个filter;

4、利用getRunningTasks,也就是activities service的执行信息来推断;

        笔者比較上面这四种,实现都是能够实现的,可是利用现有系统的一些信息来解决问题不是更好嘛!所以笔者选择方案4.也就是做一个接口。在该接口里面推断这个特殊的应用是不是在最前台了。这一点还是非常实用。简单代码例如以下:

public boolean judgeTopActivityIsReverseVideo(int status){		   String topActivityClassName=null;		   		   if(am == null)			 am =(ActivityManager)(mContext.getSystemService(mContext.ACTIVITY_SERVICE )) ;			List
runningTaskInfos = am.getRunningTasks(1); if(runningTaskInfos != null){ ComponentName f=runningTaskInfos.get(0).topActivity; topActivityClassName=f.getClassName(); } //Slog.d(TAG, "####topActivityClassName: "+topActivityClassName); if (topActivityClassName!=null&&topActivityClassName.startsWith("com.softwinner.reversevideo.ReverseVideo")) { if(1 == status) mReverseVideoAppEnter = true;/*In apk, reverse video comming*/ else mReverseVideoAppEnter = false;/*In apk, reverse video outgoing*/ return true; } else if(true == mReverseVideoAppEnter){ /*Enter ReverseVideo apk, reverse video signal comming,then press BACK/HOME key, apk exit, but reverse video signal not exit, so we need a flag note this special status*/ mReverseVideoAppEnter = false; return true; } return false; }

     我通过实践的检验,这种方法完全可行。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
Retrofit 入门学习
查看>>
【树莓派】树莓派网络配置:静态IP、无线网络、服务等
查看>>
JavaScript——双向链表实现
查看>>
抽象类和借口的区别
查看>>
nginx的location root 指令
查看>>
zDiaLog弹出层
查看>>
linux不常用但很有用的命令(持续完善)
查看>>
NFine常见错误
查看>>
zabbix报警媒介------>微信报警
查看>>
使用视图的好处
查看>>
面向开发运维的10款开源工具
查看>>
MVC ---- 增删改成 EF6
查看>>
linux 下 php 安装 pthreads
查看>>
Spring Boot学习笔记
查看>>
python3存入redis是bytes
查看>>
laravel 集合接口
查看>>
C/C++二进制读写png文件
查看>>
thymleaf 常用th 标签
查看>>
RTB 广告系统
查看>>
Linux signal 那些事儿(2)【转】
查看>>