package com.mumux.androidtesting.actions.impl; import com.android.uiautomator.testrunner.UiAutomatorTestCase; import com.mumux.androidtesting.actions.Action; import com.mumux.androidtesting.actions.argument.ActionArgument; import com.mumux.androidtesting.actions.argument.ArgumentType; import java.io.IOException; public class KillAppAction extends Action { private String application; public KillAppAction() { super("KILL", false, "Kill an application", Category.SYSTEM, null); } // region Action @Override public ActionArgument[] getArguments() { ActionArgument applicationArgument = new ActionArgument("application", ArgumentType.STRING); applicationArgument.setValue(application); return new ActionArgument[]{applicationArgument}; } @Override public void setValues(Object[] values) { application = values[0].toString(); } // endregion @Override public String run(UiAutomatorTestCase uiAutomatorTestCase, Runtime runtime) { try { System.err.println("Killing " + application); runtime.exec("am force-stop " + application); // To be clarify - when action has been satisfied try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); return e.getMessage(); } return null; } }