2015-06-15 47 views
0

我尝试长时间获得前景活动,直到现在我还没有设法获得它。如何获得foregrund活动实例?

我不知道它是否可能,但我没有在我的应用程序活动中只有杂音。

在我的服务和我想要获得的活动之间没有数据传输。

我看到很多这类问题,但没有适合我的需求。

我只需要得到一个实例,而不是ComponentName,不能描述当前的前景活动。我试过通过ActivityThread,ActivityManager,ActivityManagerService(即使我不能得到他的实例),等等。

Field activitiesField = activityThreadClass.getDeclaredField("mActivities");// won't help 
activityManager.getRunningTasks(rnd);// won't help either 

如果有任何refelection方式,听众或类似的东西,但不是静态字段

+0

你想用你的活动实例做什么 – tyczj

+1

不,你不能这样做。这是设计。这是一项安全措施。一个应用程序不应该直接引用其他应用程序。 – Budius

回答

0

不知道为什么你想要一个Activity的实例或其他背景信息。我会建议以下。

如果你在Fragment之内,那么你可以做getActivity() - 这会给Activity一个参考,然后你可以把它作为你自己的Activity

否则,您可能需要考虑拥有BroadcastReceiver,它可以为您启动一个活动。

您不应该直接访问Activity。如果您有需要访问的方法/逻辑,您可能会考虑将它们重构为辅助类。

编辑:

“在一个安全沙箱环境中应用程序运行,因此系统上的其他进程无法访问您的代码或私人数据。”从官方Android取得docs

+0

但是,正如我所提到的,即使活动不是我的应用程序的活动,我也需要前台活动实例。 – ArBel

+1

@ user2367424你不能得到一个不属于你自己的应用的活动的实例 – tyczj

+0

@tyczj你可能是对的,因为我尝试了很多不同的方式,而且我没有得到这个活动。正如我所说,我不知道是否有可能......但是我想也许有人会知道。 – ArBel