Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android中特殊應用跟系統特殊功能協助配合通訊問題

android中特殊應用跟系統特殊功能協助配合通訊問題

編輯:關於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 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;
	   }

通過筆者的測試實踐,該方法完全可行。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved