所以在人们跑步之前说这是重复的,让我解释一下。
我有一个应用程序,它基本上是一个汽车平板电脑的启动器。 当我从服务器收到消息时,我将其显示为带有以下代码的弹出对话框 -
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,然后显示弹出窗口。
我希望该应用能够显示弹出应用程序在其中运行的内容。 这意味着如果用户从启动器打开Waze应用程序并弹出窗口,它将显示在Waze活动上,并且不会首先将我带到MainActivity。
如何获取为此目的打开的应用/活动? 有几个应用程序可以从waze旁边的启动器打开。
我看到了有关活动实例等的其他答案,但我没有设法在我的代码中实现任何内容。
答案 0 :(得分:1)
如何获取为此目的打开的应用/活动?
您无法为其他应用获取Activity
个对象。
我希望该应用能够显示弹出应用程序在其中运行的内容。
使用对话框样式主题(例如Theme.AppCompat.Dialog
)将您的“弹出窗口”实现为活动本身。然后,开始那项活动。
请注意,在屏幕上弹出一些从后台占据大部分前景的用户界面非常恶劣。用户可能正在做一些你会打断的事情。
答案 1 :(得分:0)
因此经过大量尝试和失败后,解决方案是使用带有UI的自定义服务。我在其上添加视图并在必要时调用它的服务。
@ CommonsWare的答案,我首先选择的是正确的答案,这不是我需要的,因为我想要弹出显示即使我在Waze应用程序中,例如使用活动的解决方案对话框主题无法执行此操作,因为它具有应用程序的上下文,因此在显示之前将始终返回应用程序。
获得此解决方案的唯一方法是使用具有对话框视图的服务。