2016-11-25 1 views
0

Android 서비스에서 현재의 전경 앱을 닫고 싶습니다. 그러나 서비스에서는 작동하지 않습니다. 그것을 고칠 수 있을까요? 감사. Android 서비스에서 전경 앱을 종료하는 방법은 무엇입니까?

 ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(ACTIVITY_SERVICE); 
     List<ApplicationInfo> packages; 
     PackageManager pm; 
     pm = getPackageManager(); 
     //get a list of installed apps. 
     packages = pm.getInstalledApplications(0); 

     ActivityManager mActivityManager = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
     String myPackage = getApplicationContext().getPackageName(); 
     for (ApplicationInfo packageInfo : packages) { 
      if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue; 
      if(packageInfo.packageName.equals(myPackage)) { 
       Log.d(TAG,"*************"+packageInfo.packageName); 
       mActivityManager.killBackgroundProcesses(packageInfo.packageName); 
      } 
     } 

는 또한 killBackgroundProcesses를 작동 갔다하지만 내 현재 전경 응용 프로그램을 종료하지 않습니다. 나는 당신이

mActivityManager.killBackgroundProcesses(packageInfo.packageName); 

당신은 사용해야 코드에서 백그라운드 프로세스를 죽이려 허가

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

확인하십시오. http://stackoverflow.com/questions/6733311/android-killing-all-foreground-running-app – Tasneem

답변

0

안드로이드 L에서 실행하고 하나 체크 위의와

android.os.Process.killProcess(android.os.Process.myPid()); 

변경.

다른 앱을 죽이는 것은 보안 문제가 심각하므로 크게 규제됩니다. 살인을 수행하는 패키지 ID와 동일한 패키지 ID를 가진 프로세스 만 죽일 수 있습니다. 자신의 프로세스를 죽이려고하는 경우, 루트 권한이있는 장치가없고 응용 프로그램에 루트 권한이 없으면 수행 할 수없는 다른 응용 프로그램에서도 작동합니다.

자세한 내용은 link을 참조하십시오.

+0

입력 한 내용은 패키지 이름입니다. 예를 들어'com.google.android.googlequicksearchbox'와 같은 패키지 이름을 삭제하고 싶습니다 – Jame

+1

myappid가 앱 패키지 ID이기 때문에 자신의 앱을 죽이고 싶다면 다른 앱을 죽이고 싶다면 체크해주세요. 다른 솔루션과 함께. –

+0

오른쪽. 내 앱 대신 다른 앱을 죽이고 싶다 – Jame