有没有一种原生的Android方法可以从服务中获取对当前正在运行的Activity的引用?
我有一个在后台运行的服务,当事件发生(在服务中)时,我想更新我的当前活动。有没有一种简单的方法可以做到这一点(就像我上面提出的那样)?
有没有一种原生的Android方法可以从服务中获取对当前正在运行的Activity的引用?
我有一个在后台运行的服务,当事件发生(在服务中)时,我想更新我的当前活动。有没有一种简单的方法可以做到这一点(就像我上面提出的那样)?
我不知道这是否是一个愚蠢的答案,但我通过在每次进入任何活动的onCreate()时在共享首选项中存储一个标志来解决了这个问题,然后我使用共享首选项中的值来找出前台活动是什么。
这是我的答案,它可以正常工作...
你应该能够以这种方式获取当前的Activity... 如果你的应用程序结构中有几个Activity和许多片段,并且你想跟踪当前的Activity是什么,那将需要很多工作。我的情况是我只有一个Activity和多个Fragments。因此,我可以通过Application对象来跟踪当前的Activity,它可以存储所有全局变量的当前状态。
这是一种方法。当你启动你的Activity时,你可以通过Application.setCurrentActivity(getIntent());来存储该Activity。这个Application会存储它。 在你的服务类中,你可以简单地这样做: Intent currentIntent = Application.getCurrentActivity(); getApplication().startActivity(currentIntent);
最近才发现这个。使用的API如下:
targetSdkVersion 26
ActivityManager.getCurrentActivity(context)
希望这对你有所帮助。
ActivityManager
类中确实存在getCurrentActivity()
函数(https://developer.android.com/reference/android/app/ActivityManager)。但是现在,这个函数已经不存在了。有趣的是,这个函数还真的存在:`ActivityManager.isUserAMonkey()`。 - ByteSlinger