android 在特殊应用的特殊功能,以帮助通信系统的问题
在实际工程中的应用,进入一个特殊的应用后,系统的某个功能不能起作用。
当然,这个通信有非常多办法能够做到。笔者能够想到的至少有例如以下几种
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 在特殊应用的特殊功能,以帮助通信系统的问题的更多相关文章
- 【转】Android NFC学习笔记
一:NFC的tag分发系统 如果想让android设备感应到NFC标签,你要保证两点 1:屏幕没有锁住 2:NFC功能已经在设置中打开 当系统检测到一个NFC标签的时候,他会自动去寻找最合适的acti ...
- Android通过JNI调用驱动程序(完全解析实例)
要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口,去操作某个驱动节点,实现read,writer ioctl等操作!这对底层驱动开发人员是很重要的一个调试通道,也是 ...
- 【转】Android通过JNI调用驱动程序(完全解析实例)
原文网址:http://blog.csdn.net/ok138ok/article/details/6560875 要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口 ...
- logcat日志文件
android日志系统提供了记录和查看系统调试信息的功能,日志都是从各个软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来进行查看和使用 开发者选项,有个选项叫做“日志记录器缓冲区大 ...
- adb 之日志文件分析(五)
一,logcat日志文件 1,addroid日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区(内存)中记录下来的,缓冲区可以通过logcat命令来查看和使用 2,在开发 ...
- Android开发App工程结构搭建
本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构. 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角 ...
- android音视频点/直播模块开发
音视频 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白, ...
- Android 客户端应用开发的架构
本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐 ...
- Android性能优化典范(二)
Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...
随机推荐
- JVM性能监控与优化笔记(CPU)
基础 对于CPU层面的监控主要以下几个点: 是否系统态CPU的占用率高 CPU运行队列中待运行的任务数 是否CPU停滞多,每时钟指令数(IPC)少(高级点,对于计算密集型的应用需要关注) 系统态CPU ...
- VS2008通过 map 和 cod 文件定位崩溃代码行
VS 2005/2008使用map文件查找程序崩溃原因 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一 ...
- SRM 583 Div II Level Three:GameOnABoard,Dijkstra最短路径算法
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12556 用Dijkstra实现,之前用Floyd算法写了一个, ...
- Cocos2dx引擎10-事件派发
本文介绍Cocos2dx事件(以下简称Event)处理机制中的事件分发模块,在Event发生后,进过一系列处理,最后将会分发Event: 1.dispatchEvent& dispatchTo ...
- Oracle判断指定列是否全部为数字
select nvl2(translate(name,'\1234567890 ', '\'),'is characters ','is number ') from customer_inf ...
- [课堂实践与项目]IOS只能进行简单的加减乘除的没有优先级的计算器
// // LCViewController.m // calculator // // Created by lichan on 13-12-3. // Copyright (c) 2013年 co ...
- Servlet过滤器——仿盗链过滤器
1.概述 介绍如何使用过滤器技术,防止通过其他URL地址直接访问本站资源.运行本实例,当URL地址不是本站地址时,在网页中将显示错误提示信息. 2.技术要点 主要应用request对象的getHead ...
- JSTL解析——001
JSTL 全称jsp standard tag library ,即jsp标准标签库. 是不是想问标签是什么东西? 标签就是jsp专门用于显示数据的,可重复利用的类库: 是不是想问标签由那些部分组成的 ...
- 《Java从入门到精通》src9-25
find . -name *.java |xargs -i sh -c "echo {};cat {}" > ../all.java[op@TIM src]$ cat al ...
- cocos2d-x游戏开发系列教程-前言
cocos2d-x游戏开发前景: 最近企业对于Cocos2D-X开发人才的用人需求很大,而且所提供的薪资相当可观. 为满足广大向往游戏开发行业同学的需求,特推出适合新手的Cocos2D-X手游开发教程 ...