获取服务中前台活动的上下文

Posted

技术标签:

【中文标题】获取服务中前台活动的上下文【英文标题】:Get context of foreground activity in Service 【发布时间】:2018-12-03 13:19:32 【问题描述】:

我有一项服务,我想获取当前在前台运行的最顶层活动的上下文。该服务在我自己的应用程序中,最重要的活动来自另一个应用程序(该活动不是来自我的应用程序)。可能吗 ?如果是,怎么做?

编辑:我需要获取上下文,因为我想对 Google VR 服务渲染的图像应用自定义失真。我打算怎么做:

    在我的服务中获取GvrActivity 的上下文。 从上下文中获取 GvrView 从 GvrView 访问 onDrawFrame() 方法等并应用自定义变形

【问题讨论】:

***.com/questions/28066231/… 我想要上下文,而不仅仅是包名。 你需要它做什么?如果您提出更具体的问题,您可能会得到更多答案。也许你根本不需要上下文。 @josephus 我添加了获取上下文的原因 明白。我想如果没有你自己的 android 风格,你想要做的事情是不可能的。想象一下,当应用程序能够修改其他应用程序的绘制方式(主题当然不同)时会发生多么可怕的事情。 【参考方案1】:

服务无法获取当前活动活动的上下文。但是您可以通过其他方式实现您的方案。

    服务完成后发送本地广播,(Services可以访问share preferenceDatabasebroadcast reciever等)。 收听来自活动 onReceive() 的本地广播,在该功能上将自定义失真应用到由 google vr 服务呈现的图像。

【讨论】:

活动在另一个应用程序中。我无法修改该活动。

以上是关于获取服务中前台活动的上下文的主要内容,如果未能解决你的问题,请参考以下文章

在分离的片段中获取上下文/活动?

在android中获取上下文和活动对象null

从非活动类中获取上下文

从非活动单例类中获取应用程序上下文

获取应用程序上下文

如何从两个不同的活动中保存和获取 SQLite 中的数据?