編輯:關於Android編程
本文實例講述了Android通過反射實現強制停止應用程序的方法。分享給大家供大家參考,具體如下:
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);
}
/**
* 殺死其他正在運行的程序
*
* @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();
}
}
}
/**
*強制停止應用程序
* @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);
}
/**
* 判斷某個應用程序是 不是三方的應用程序
* @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;
}
說明:如果是在Activity中將onReceiver方法換成onCreate方法即可。
2.需要在AndroidManifest.xml 把package的userid設置為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">
更多關於Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android Service組件使用技巧總結》、《Android基本組件用法總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
Android學習筆記之Fragment的兩種使用方法
一、第一種方法: (1)Fragment的第一種使用方法是使用fragment加載單獨的布局文件:(也就是xml的方式實現) 結構如下: activity_main.
Android Eclipse中查看 Android框架源碼
有時候用Eclipse想按住ctrl鍵查看源碼怎麼辦? 下面具體步驟讓你輕松看源碼: 點擊android.jar下面的source: 這裡可以添加zip和文件夾,zi
Android按鈕按下的時候改變顏色實現方法
需求是在我按下按鈕時,該變按鈕顏色,使用戶感覺到自己按了按鈕,當松開的時候,變回原來的顏色。正常時:按下時:有人說,直接監聽按鈕的按下事件不得了嘛,其實這樣確實能實現同樣
Android 編程之入門開發文件夾管理器開發文件的過濾與排序-3
前面說了文件操作和主界面,接下來說說文件的過濾和排序,我們都知道在我們的設備裡,不管是PC還是手機,總有一些我們 看不到的文件夾,那就是所謂的隱藏文件,大部分的隱藏文件,