0

自動再起動せずに別のアプリケーションを強制的に閉じる必要があります。

次の手順を試してみると、アプリケーションは閉じますが、数秒後にアプリケーションが自動再起動します (これは、クラッシュに対するアプリケーションのシステム保護だと思います)。

// try 1
try
  {
    Method forceStopPackage;
    ActivityManager activityManager = ((ActivityManager)contextService.getSystemService( Context.ACTIVITY_SERVICE));
    forceStopPackage = activityManager.getClass().getDeclaredMethod( "forceStopPackage", String.class);
    forceStopPackage.setAccessible( true);
    forceStopPackage.invoke( activityManager, sApplicationPackageName);
  }
 catch( Exception e) {}


// try 2
Process           localProcessKill          = null;
DataOutputStream  localDataOutputStreamKill = null;
DataInputStream   localDataInputStreamKill  = null;
try
  {
    localProcessKill          = Runtime.getRuntime().exec( "su");
    localDataOutputStreamKill = new DataOutputStream( localProcessKill.getOutputStream());
    localDataInputStreamKill  = new DataInputStream(  localProcessKill.getInputStream());
    if( (localDataOutputStreamKill != null) && (localDataInputStreamKill != null))
      {
        localDataOutputStreamKill.writeBytes( "kill -9 " + processInfo.pid + "\n");
        localDataOutputStreamKill.flush();
        localDataOutputStreamKill.writeBytes( "exit\n");
        localDataOutputStreamKill.flush();
        // localProcessKill.waitFor();
      }
  }
 catch( Exception e) {}


// try 3
try
  {
    activityManager.killBackgroundProcesses( processInfo.processName);
  }
 catch( Exception e) {}


// try 4
try
  {
    android.os.Process.sendSignal( processInfo.pid, android.os.Process.SIGNAL_KILL);
  }
 catch( Exception e) {}

しかし、アプリケーションの自己再起動を殺しました。再起動せずに別のアプリケーションを強制停止する方法についてのアイデアを教えてください。

4

1 に答える 1

2

root 権限があるので、アプリを停止する adb コマンドを試すことができます。

adb shell am force-stop APP_PACKAGE
于 2013-06-21T07:08:40.130 に答える