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

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

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 在特殊应用的特殊功能,以帮助通信系统的问题的更多相关文章

  1. 【转】Android NFC学习笔记

    一:NFC的tag分发系统 如果想让android设备感应到NFC标签,你要保证两点 1:屏幕没有锁住 2:NFC功能已经在设置中打开 当系统检测到一个NFC标签的时候,他会自动去寻找最合适的acti ...

  2. Android通过JNI调用驱动程序(完全解析实例)

    要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口,去操作某个驱动节点,实现read,writer ioctl等操作!这对底层驱动开发人员是很重要的一个调试通道,也是 ...

  3. 【转】Android通过JNI调用驱动程序(完全解析实例)

    原文网址:http://blog.csdn.net/ok138ok/article/details/6560875 要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口 ...

  4. logcat日志文件

    android日志系统提供了记录和查看系统调试信息的功能,日志都是从各个软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来进行查看和使用 开发者选项,有个选项叫做“日志记录器缓冲区大 ...

  5. adb 之日志文件分析(五)

    一,logcat日志文件 1,addroid日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区(内存)中记录下来的,缓冲区可以通过logcat命令来查看和使用 2,在开发 ...

  6. Android开发App工程结构搭建

    本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角 ...

  7. android音视频点/直播模块开发

      音视频 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白, ...

  8. Android 客户端应用开发的架构

    本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐 ...

  9. Android性能优化典范(二)

    Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...

随机推荐

  1. URAL 1180. Stone Game (博弈 + 规律)

    1180. Stone Game Time limit: 1.0 second Memory limit: 64 MB Two Nikifors play a funny game. There is ...

  2. jQuery Easy UI Resizable(调整大小)组件

    Resizable(调整大小)组件,easyui基础组件之中的一个.调整大小就是能够对元素能够拖着调整大小,这个组件不依赖于其它组件,使用比較简单,相关的属性.事件都 在样例中介绍了. 演示样例: & ...

  3. How to find variable is empty in shell script

    (1). var="" if [ -n "$var" ]; then     echo "not empty" else     echo ...

  4. 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961643 版本1.0.3新增内容 打开摄像头 Ø 新建菜单项,Learning OpenCV——&g ...

  5. javascript 变量转义

    $(this).append('<a href="2-1partner.html"><div><img width="645" h ...

  6. Codeforces Round #270--B. Design Tutorial: Learn from Life

    Design Tutorial: Learn from Life time limit per test 1 second memory limit per test 256 megabytes in ...

  7. Swift - 使用atlas图集实现动画效果(SpriteKit游戏开发)

    我们通常继承SKSpriteNode来实现游戏中的元素,除了可以使用图片作为纹理皮肤外.我们还可以使用动画纹理集来实现动画播放. 动画纹理集的制作也很简单,首先要有一套动画序列图,然后把它们放到一个文 ...

  8. 使用JDBC进行数据库的事务操作(2)

    本篇将讲诉如何使用JDBC进行数据库有关事务的操作.在上一篇博客中已经介绍了事务的概念,和在MySQL命令行窗口进行开启事务,提交事务以及回滚事务的操作. 似乎事务和批处理都可以一次同时执行多条SQL ...

  9. 批处理运行python

    @echo off cd C:\test start python test.py start python test2.py exit

  10. Maven插件之portable-config-maven-plugin(不同环境打包)

    在大型的项目组中,分不同的开发环境,测试环境,生产环境(说白了就是配置文件不同,或者数据源,或者服务器,或者数据库等);问题来了,如何使用Maven针对不同的环境来打包呢? Maven提供了Profi ...