package semtex.archery.util;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Context;
public class ProcessUtils {
private final static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
private static ProcessUtils instance;
public final class RestartRunnable implements Runnable {
private final Context context;
public RestartRunnable(final Context context) {
this.context = context;
} // RestartRunnable
public void run() {
killTas();
} // run
private void killTas() {
final ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningAppProcessInfo> activityes = manager.getRunningAppProcesses();
for (final RunningAppProcessInfo runningAppProcessInfo : activityes) {
if (runningAppProcessInfo.processName.equals("semtex.archery")) {
android.os.Process.killProcess(runningAppProcessInfo.pid);
}
}
} // killTAS
} // RestartRunnable
public void killTasWithTimeout(final int delay, final Context context) {
executorService.schedule(new RestartRunnable(context), delay, TimeUnit.SECONDS);
} // killTasWithTimeout
private ProcessUtils() {
} // ProcessUtils
public static ProcessUtils getInstance() {
if (instance == null) {
instance = new ProcessUtils();
} // if
return instance;
} // getInstance
}