android 在特殊应用的特殊功能,以帮助通信系统的问题
2015-07-18 09:39
597 查看
在实际工程中的应用,进入一个特殊的应用后,系统的某个功能不能起作用。
当然,这个通信有非常多办法能够做到。笔者能够想到的至少有例如以下几种
1、利用property熟悉来实现,这种话须要添加一个特殊的属性;
2、利用数据库。在数据库中加一条记录,进入应用的时候设置一下。在系统部分能够利用content observer或者在特殊事件来的时候先推断读取一下这个值也能够。
3、利用intent,发一个特殊的intent出来,在系统这边装一个filter;
4、利用getRunningTasks,也就是activities service的执行信息来推断;
笔者比較上面这四种,实现都是能够实现的,可是利用现有系统的一些信息来解决问题不是更好嘛!所以笔者选择方案4.也就是做一个接口。在该接口里面推断这个特殊的应用是不是在最前台了。这一点还是非常实用。简单代码例如以下:
我通过实践的检验,这种方法完全可行。
当然,这个通信有非常多办法能够做到。笔者能够想到的至少有例如以下几种
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<RunningTaskInfo> 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; }
我通过实践的检验,这种方法完全可行。
相关文章推荐
- android studio安装
- Android HAL层hardware module的设计
- Android多媒体:AudioTrack
- Android 编程下两种方式注册广播的区别
- Android多媒体:AudioMixer
- Android:EditText属性大全
- Gradle Tips#2-语法
- Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
- AndroidStudio中的包管理
- Android--IntentService简介
- Android开发环境搭建
- 提高 Android 代码质量的4个工具
- Android官方SDK下载(含API文档)
- Android源代码 之 构建 编译源码的环境(Ubuntu篇)
- Android源代码 之 下载源代码
- Android源代码 之 源代码分支、版本号、支持设备列表
- Android 之 View透明度的设置
- Android 之 adapter.notifyDataSetChanged() 无响应
- 教你如何不翻墙就可以快速更新AndroidSDK Manager中的内容
- Android源代码 之 源代码版本名称、版本号、API级别对照表