2011-07-08 53 views
3

有什麼辦法從應用程序名稱獲取包名? 對於例如,如果應用程序的名稱與位置,我可以得到它的包名com.android.location,這樣我就可以殺死它使用如何使用名稱來殺死應用程序?

am.killBackgroundProcesses(包名)

或有人直接知道任何功能,用應用程序名稱殺死。任何其他建議?

回答

8

這將獲得所有正在運行的進程,並通過它們全部找到具有指定名稱的進程並終止進程。

String nameOfProcess = "location"; 
ActivityManager manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); 
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses(); 
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses) 
{ 
    if (process.processName.contains(nameOfProcess)) 
    { 
     // Ends the app 
     manager.restartPackage(process.processName); 
     break; 
    } 
} 

要使用此方法,您將需要以下權限:

<uses-permission android:name="android.permission.GET_TASKS" /> 
<uses-permission android:name="android.permission.RESTART_PACKAGES"/> 
+0

restartPackage()已過時。改用killBackgroundProcesses()。 – Guian

0

沒有直接的方法來做到這一點。你可以掃描所有的軟件包,並獲得他們的應用程序標籤,並殺死那些你想要的。

PackageManager

有,你可以用這個了不少方法。