每当我的广播被执行时,我想对前台活动显示警报。
知道 ActivityManager 管理 Activity ,所以我们可以从 ActivityManager 获取信息。我们通过以下方式获取当前前台运行的Activity
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
更新 2018/10/03 getRunningTasks () 已弃用。请参阅下面的解决方案。
此方法在 API 级别 21 中已弃用。从 Build.VERSION_CODES.LOLLIPOP 开始,此方法不再可用于第三方应用程序:引入以文档为中心的最新消息意味着它可以将人员信息泄露给调用者。为了向后兼容,它仍然会返回其数据的一小部分:至少是调用者自己的任务,可能还有其他一些已知不敏感的任务,例如 home。