Android通過(guò)反射實(shí)現(xiàn)強(qiáng)制停止應(yīng)用程序的方法
本文實(shí)例講述了Android通過(guò)反射實(shí)現(xiàn)強(qiáng)制停止應(yīng)用程序的方法。分享給大家供大家參考,具體如下:
private ActivityManager manager; private List<RunningAppProcessInfo> runningProcesses; private String packName; private PackageManager pManager; @Override public void onReceive(Context context, Intent intent) { pManager = context.getPackageManager(); manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); killOthers(context); } /** * 殺死其他正在運(yùn)行的程序 * * @param context */ private void killOthers(Context context) { runningProcesses = manager.getRunningAppProcesses(); for (RunningAppProcessInfo runningProcess : runningProcesses) { try { packName = runningProcess.processName; ApplicationInfo applicationInfo = pManager.getPackageInfo(packName, 0).applicationInfo; if (!"com.asms".equals(packName)&&filterApp(applicationInfo)) { forceStopPackage(packName,context); System.out.println(packName+"JJJJJJ"); } }catch(Exception e){ e.printStackTrace(); } } } /** *強(qiáng)制停止應(yīng)用程序 * @param pkgName */ private void forceStopPackage(String pkgName,Context context) throws Exception{ ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); Method method = Class.forName("android.app.ActivityManager").getMethod("forceStopPackage", String.class); method.invoke(am, pkgName); } /** * 判斷某個(gè)應(yīng)用程序是 不是三方的應(yīng)用程序 * @param info * @return */ public boolean filterApp(ApplicationInfo info) { if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { return true; } else if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { return true; } return false; }
說(shuō)明:如果是在Activity中將onReceiver方法換成onCreate方法即可。
2.需要在AndroidManifest.xml 把package的userid設(shè)置為system
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.asms" android:versionCode="1" android:versionName="1.0" android:sharedUserId="android.uid.system">
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開(kāi)發(fā)入門與進(jìn)階教程》、《Android Service組件使用技巧總結(jié)》、《Android基本組件用法總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android 利用反射+try catch實(shí)現(xiàn)sdk按需引入依賴庫(kù)的方法
- Android 反射注解與動(dòng)態(tài)代理綜合使用詳解
- Android編程實(shí)現(xiàn)通過(guò)反射獲取資源Id的方法
- Android基于反射技術(shù)實(shí)現(xiàn)的加減乘除運(yùn)算示例
- 詳解Java編程中的反射在Android開(kāi)發(fā)中的應(yīng)用
- Android中通過(guò)反射實(shí)現(xiàn)圓角ImageView代碼實(shí)例
- java反射android的r文件的示例
- Android依據(jù)名字通過(guò)反射獲取在drawable中的圖片
- Android 繞過(guò)反射黑名單的方法
相關(guān)文章
Android開(kāi)發(fā)實(shí)現(xiàn)NFC刷卡讀取的兩種方式
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)中實(shí)現(xiàn)NFC刷卡讀取的兩種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09詳解Android使用Gradle統(tǒng)一配置依賴管理
本篇文章主要介紹了詳解Android 使用 Gradle 統(tǒng)一配置依賴管理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android中的腦殘?jiān)O(shè)計(jì)總結(jié)
本篇文章是對(duì)Android中的腦殘?jiān)O(shè)計(jì)進(jìn)行了分析與介紹,需要的朋友參考下2013-05-05Android入門之在SharedPreference中使用加密
這篇文章主要為大家詳細(xì)介紹了Android如何使在SharedPreference中使用加密,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Android有一定的幫助,需要的可以參考一下2022-12-12Android中用RxJava和ViewPager實(shí)現(xiàn)輪播圖
現(xiàn)在App中實(shí)現(xiàn)一個(gè)輪播圖已經(jīng)是很多產(chǎn)品的標(biāo)配了,這篇文章給大家詳細(xì)介紹了如何利用RxJava和ViewPager實(shí)現(xiàn)輪播圖,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-09-09Android基于Mapbox?V10?繪制LineGradient軌跡
這篇文章主要介紹了Android基于Mapbox?V10?繪制LineGradient軌跡,文章通告介紹一些V10上的用法,最終講下如何繪制漸變運(yùn)動(dòng)記錄軌跡,感興趣的小伙伴可以參考一下2022-08-08Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05