4

我正在寻找一种从我的应用程序中启动另一个应用程序的方法,但这样焦点不会从我的应用程序更改为启动的应用程序。

即目前我通过意图启动了新应用程序,但是当执行此操作时,新应用程序启动并成为视图中的应用程序,我需要将其保留在后台,而我的应用程序仍在视图中。

这是什么原因?我正在开发一个内部使用的应用程序,它就像设备的锁屏一样,所以尽管事情必须在后台发生,但“锁屏”必须始终位于顶部。

我已经对意图和启动其他应用程序进行了一些研究,但找不到任何关于我需要的东西。

希望你能帮忙谢谢!

目前终端是这样调用的:

    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);

它需要在后台运行的原因是,应用程序可以在终端中运行命令而无需用户访问,但随后他们“解锁”了他们需要的屏幕,然后才能查看终端以及正在运行的命令ETC

4

3 回答 3

2

您不能在后台启动活动。而是使用启动活动并最小化活动(在您的情况下,此活动属于不同的应用程序)moveTaskToBack(true);

在您的情况下,根据您的意图及其参数设置条件并使用moveTaskToBack(true);,以便仅在您的应用程序启动时最小化活动。

于 2013-03-08T11:40:54.177 回答
1

这是不可能的,您必须启动一个Service执行实际工作的背景,并且只有在Activity您的前景完成后才启动您想要导航到的Activity。根据您的架构,您可以Activity在前台完成时存储 to 调用Activity并从服务中更改它。这样,您将拥有您想要的行为,而无需实际调用Activity.

于 2013-03-08T11:27:42.097 回答
1

除了@Meher 的回答,在您当前开始活动的意图中,您可以添加标志 FLAG_FROM_BACKGROUND。有了这个,你就摆脱了“闪烁”的效果(你的活动在几分之一秒内显示,同时它发现是否要进入后台)

于 2015-07-16T19:30:01.757 回答