Android模拟从服务返回

Android模拟从服务返回,android,android-intent,Android,Android Intent,我正在开发一个实用性应用程序,它将为用户自动化某些任务,例如打开一个应用程序,然后返回到以前的活动 对于这个特定的功能,我有一个后台服务,它通过startActivity启动第三方活动,等待几秒钟让活动完全加载,然后通过模拟按后退按钮将用户带回来 我是stuch在后面的按钮按下模拟。我不想仅仅启动Launcher活动将用户带到主屏幕。我希望他回到上次使用的版本。起初,我认为没有根访问是不可能的,但我相信这可能会奏效: try { Runtime.getRuntime().exec("in

我正在开发一个实用性应用程序,它将为用户自动化某些任务,例如打开一个应用程序,然后返回到以前的活动

对于这个特定的功能,我有一个后台服务,它通过startActivity启动第三方活动,等待几秒钟让活动完全加载,然后通过模拟按后退按钮将用户带回来


我是stuch在后面的按钮按下模拟。我不想仅仅启动Launcher活动将用户带到主屏幕。我希望他回到上次使用的版本。

起初,我认为没有根访问是不可能的,但我相信这可能会奏效:

try {
    Runtime.getRuntime().exec("input keyevent " + KeyEvent.KEYCODE_BACK);
} catch (IOException e) {/*...*/}
更新:
我将它放在AsyncTask中进行测试,但当外部的Activity:作为辅助功能服务工作时,它似乎不起作用,所以这可能是唯一的方法。

对于其他应用程序的活动,强制它们调用finish是不可能的。您可以从该服务发送广播;然后,任何开放的活动都可以收听广播,然后决定采取适当的行动

Ineptus答案的问题是,键盘可能有不同的输入事件值到其功能的映射

见:

不确定这是否有帮助:

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 

这当然很有趣,mutual plus one?谢谢,但我仍然需要4个代表点才能投票:/当我得到他们时,他们会回到这里: