我正在寻找一种从我的应用程序中启动另一个应用程序的方法,但这样我的应用程序就不会将焦点更改为已启动的应用程序。
即目前我通过意图启动了新的应用程序,但是当执行此操作时,新应用程序已启动并成为视图中的应用程序,我需要将其保留在后台,我的应用程序仍在视图中。< / p>
原因是什么? 我正在开发一个内部使用的应用程序,它将像设备的锁屏一样,所以尽管事情必须在后台发生,但“锁定屏幕”必须始终位于顶部。
我已经对意图和启动其他应用程序进行了一些研究,但找不到任何关于我需要的东西。
希望你能帮助谢谢你!
目前终端的调用方式如下:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("jackpal.androidterm", "jackpal.androidterm.RemoteInterface"));
intent.setAction("jackpal.androidterm.RUN_SCRIPT");
intent.putExtra("jackpal.androidterm.iInitialCommand", cmdString);
它需要在后台运行的原因是应用程序可以在终端中运行命令而无需用户访问,但随后他们“解锁”他们需要的屏幕,然后才能查看终端和命令正在运行等
答案 0 :(得分:1)
这是不可能的,您必须启动执行实际工作的后台Service
,并且只有在您的前景Activity
成功后才启动要导航到的Activity
完了。根据您的体系结构,您可以存储Activity
以在前景Activity
完成时进行呼叫,并从服务中进行更改。这样,您就可以实现自己的愿望,而无需实际调用Activity
。
答案 1 :(得分:1)
您无法在后台启动活动。而是使用moveTaskToBack(true);
在您的情况下,根据您的意图及其参数设置条件并使用moveTaskToBack(true);
,以便仅在您的应用程序启动时最小化活动。
答案 2 :(得分:0)
除了@Meher的答案之外,在当前开始活动的意图中,您可以添加标志FLAG_FROM_BACKGROUND。 通过这种方式,您可以摆脱“眨眼”效果(您的活动显示的时间为一秒,而发现时间为背景)