如何获取foregrund活动实例?

时间:2015-06-15 13:43:45

标签: android android-activity reflection

我尝试了很长一段时间的前台活动,直到现在我还没有成功。

我不知道它是否可能,但我不会仅仅在我的应用活动中出现。

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

我看到很多这类问题,但我没有任何东西适合我的需要。

我只需要获取实例,而不是ComponentName,而不是当前前台活动的描述。

我已经尝试过ActivityThread,ActivityManager,ActivityManagerService(即使我也无法获取他的实例),等等。

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

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

1 个答案:

答案 0 :(得分:0)

不知道为什么要使用Activity或其他背景信息的实例。我建议如下。

如果您在Fragment内,那么您可以执行getActivity() - 这将提供对Activity的引用,然后您可以将其转换为您自己的Activity {1}}。

否则,您可能需要考虑使用BroadcastReceiver,它可以为您启动活动。

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

修改

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