Android判斷現(xiàn)在所處界面是否為home主桌面的方法
本文實例講述了Android判斷現(xiàn)在所處界面是否為home主桌面的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
/** * 獲得屬于桌面的應(yīng)用的應(yīng)用包名稱 * @return 返回包含所有包名的字符串列表 */ private List<String> getHomes() { List<String> names = new ArrayList<String>(); PackageManager packageManager = this.getPackageManager(); //屬性 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for(ResolveInfo ri : resolveInfo){ names.add(ri.activityInfo.packageName); Log.i("zhangyinfu PinyinIME.java", "packageName =" + ri.activityInfo.packageName); } return names; }
分析:
1)既然要判斷當(dāng)前界面,那就要判斷當(dāng)前的RunningTasks中的第一個;
2)引入ActivityManager獲取RunningTasks;
3)取出RunningTasks中的topActivity的PackageName;
4)最后跟第一步得到的List做比較即可!
5)需添加相關(guān)權(quán)限
/** * 判斷當(dāng)前界面是否是桌面 */ public boolean isHome(){ ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> rti = mActivityManager.getRunningTasks(1); List<String> strs = getHomes(); if(strs != null && strs.size() > 0){ return strs.contains(rti.get(0).topActivity.getPackageName()); }else{ return false; } }
希望本文所述對大家的Android程序設(shè)計有所幫助。
- Android中監(jiān)聽Home鍵的4種方法總結(jié)
- android里面屏蔽home鍵/禁止Home鍵或者隨你DIY
- Android應(yīng)用開發(fā)中模擬按下HOME鍵的效果(實現(xiàn)代碼)
- android4.0屏蔽HOME鍵的簡單實現(xiàn)
- Android監(jiān)聽home鍵的方法詳解
- Android監(jiān)聽Home鍵和Back鍵的區(qū)別介紹
- Android4.0.x Home鍵事件攔截監(jiān)聽的方法
- Android 屏蔽和捕獲Home鍵的示例代碼
- Android編程實現(xiàn)獲取標(biāo)題欄、狀態(tài)欄的高度、屏幕大小及模擬Home鍵的方法
- Android 解決監(jiān)聽home鍵的幾種方法
相關(guān)文章
Android實現(xiàn)自定義圓角對話框Dialog的示例代碼
項目中多處用到對話框,本篇文章主要介紹了Android實現(xiàn)圓角對話框Dialog的示例代碼,有興趣的可以了解一下。2017-03-03Android混合開發(fā)教程之WebView的使用方法總結(jié)
WebView是一個基于webkit引擎、展現(xiàn)web頁面的控件,下面這篇文章主要給大家介紹了關(guān)于Android混合開發(fā)教程之WebView的使用方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-05-05Android實現(xiàn)跟隨手指拖動并自動貼邊的View樣式(實例demo)
本文通過實例代碼給大家介紹了android實現(xiàn)跟隨手指拖動并自動貼邊的View樣式,效果非常棒,具有參考借鑒價值,需要的朋友參考下吧2017-01-01