mirror of
https://github.com/Genymobile/scrcpy.git
synced 2025-07-28 11:49:10 +00:00
Add option to force-stop app before starting
The previous commit introduced: scrcpy --start-app=name By adding a '+' prefix, the app is stopped beforehand: scrcpy --start-app=+name This may be useful to start a fresh app on a new virtual display: scrcpy --new-display --start-app=+org.mozilla.firefox PR #5370 <https://github.com/Genymobile/scrcpy/pull/5370>
This commit is contained in:
parent
13ce277e1f
commit
dd20efa41c
4 changed files with 17 additions and 3 deletions
|
@ -594,6 +594,11 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener {
|
|||
}
|
||||
|
||||
private void startApp(String name) {
|
||||
boolean forceStopBeforeStart = name.startsWith("+");
|
||||
if (forceStopBeforeStart) {
|
||||
name = name.substring(1);
|
||||
}
|
||||
|
||||
DeviceApp app = Device.findByPackageName(name);
|
||||
if (app == null) {
|
||||
Ln.w("No app found for package \"" + name + "\"");
|
||||
|
@ -607,7 +612,7 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener {
|
|||
}
|
||||
|
||||
Ln.i("Starting app \"" + app.getName() + "\" [" + app.getPackageName() + "] on display " + startAppDisplayId + "...");
|
||||
Device.startApp(app.getPackageName(), startAppDisplayId);
|
||||
Device.startApp(app.getPackageName(), startAppDisplayId, forceStopBeforeStart);
|
||||
}
|
||||
|
||||
private int getStartAppDisplayId() {
|
||||
|
|
|
@ -264,7 +264,7 @@ public final class Device {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static void startApp(String packageName, int displayId) {
|
||||
public static void startApp(String packageName, int displayId, boolean forceStop) {
|
||||
PackageManager pm = FakeContext.get().getPackageManager();
|
||||
|
||||
Intent launchIntent = getLaunchIntent(pm, packageName);
|
||||
|
@ -283,6 +283,9 @@ public final class Device {
|
|||
}
|
||||
|
||||
ActivityManager am = ServiceManager.getActivityManager();
|
||||
if (forceStop) {
|
||||
am.forceStopPackage(packageName);
|
||||
}
|
||||
am.startActivity(launchIntent, options);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue