码迷,mamicode.com
首页 > 移动开发 > 详细

android 在特殊应用的特殊功能,以帮助通信系统的问题

时间:2015-07-18 10:47:42      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

标签:

原文地址:http://www.cnblogs.com/hrhguanli/p/4656242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!