在我的启动器应用程序的当前 运行 个应用程序上显示对话框
Show dialog on a currently running app from my launcher app
所以在人们 运行 之前说这是重复的让我解释一下。
我有一个应用程序,它基本上是汽车平板电脑中的启动器。
每当我从服务器收到一条消息时,我都会将其显示为带有以下代码的弹出对话框 -
public void openMessage(MsgItem msg)
{
Intent intent = new Intent(_context, MainActivity.class);
intent.putExtra(MainActivity.OP_EXTRA_MESSAGE, msg);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
_context.startActivity(intent);
}
现在您可以在 MainActivity 中看到它 returns,然后在那里显示弹出窗口。
我希望该应用程序能够显示其中 运行ning 中的任何应用程序的弹出窗口。
这意味着如果用户从启动器打开 Waze 应用程序并且有一个弹出窗口,它会显示在 Waze activity 上并且不会首先将我带到 MainActivity。
如何获取为此目的打开的 app/activity?
有几个应用程序可以从 waze 旁边的启动器打开。
我看到了关于活动实例等的其他答案,但我没有设法在我的代码中实现任何东西。
How can i fetch what app/activity is opened for this purpose?
您无法为其他应用获取 Activity
对象。
I want the app to be able to show the pop up on what ever app is running inside it.
将您的 "pop up" 实现为 activity 本身,使用对话框风格的主题(例如 Theme.AppCompat.Dialog
)。然后,开始 activity.
请注意,在屏幕上弹出一些 UI 从后台占据大部分前景,这对用户来说是相当不友好的。用户可能正在做一些您会打断的事情。
所以在多次尝试和失败之后,解决方案是使用 UI 的自定义服务。我在其上添加视图并根据需要调用它的服务。
@CommonsWare 的回答我首先选择了正确的答案,但这并不是我所需要的,因为我希望弹出窗口显示,即使我在 Waze 应用程序中,例如使用 activity 的解决方案对话框主题无法做到这一点,因为它具有应用程序的上下文,因此在显示它之前总是会返回到应用程序。
获得此解决方案的唯一方法是使用具有对话框视图的服务。
所以在人们 运行 之前说这是重复的让我解释一下。
我有一个应用程序,它基本上是汽车平板电脑中的启动器。 每当我从服务器收到一条消息时,我都会将其显示为带有以下代码的弹出对话框 -
public void openMessage(MsgItem msg)
{
Intent intent = new Intent(_context, MainActivity.class);
intent.putExtra(MainActivity.OP_EXTRA_MESSAGE, msg);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
_context.startActivity(intent);
}
现在您可以在 MainActivity 中看到它 returns,然后在那里显示弹出窗口。
我希望该应用程序能够显示其中 运行ning 中的任何应用程序的弹出窗口。 这意味着如果用户从启动器打开 Waze 应用程序并且有一个弹出窗口,它会显示在 Waze activity 上并且不会首先将我带到 MainActivity。
如何获取为此目的打开的 app/activity? 有几个应用程序可以从 waze 旁边的启动器打开。
我看到了关于活动实例等的其他答案,但我没有设法在我的代码中实现任何东西。
How can i fetch what app/activity is opened for this purpose?
您无法为其他应用获取 Activity
对象。
I want the app to be able to show the pop up on what ever app is running inside it.
将您的 "pop up" 实现为 activity 本身,使用对话框风格的主题(例如 Theme.AppCompat.Dialog
)。然后,开始 activity.
请注意,在屏幕上弹出一些 UI 从后台占据大部分前景,这对用户来说是相当不友好的。用户可能正在做一些您会打断的事情。
所以在多次尝试和失败之后,解决方案是使用 UI 的自定义服务。我在其上添加视图并根据需要调用它的服务。
@CommonsWare 的回答我首先选择了正确的答案,但这并不是我所需要的,因为我希望弹出窗口显示,即使我在 Waze 应用程序中,例如使用 activity 的解决方案对话框主题无法做到这一点,因为它具有应用程序的上下文,因此在显示它之前总是会返回到应用程序。
获得此解决方案的唯一方法是使用具有对话框视图的服务。