Android:如何获取当前的前台活动(从服务)?

2024-02-20

有没有一种原生的 android 方法可以从服务获取对当前正在运行的 Activity 的引用?

我有一个在后台运行的服务,我想在事件发生时(在服务中)更新我当前的活动。有没有一种简单的方法可以做到这一点(就像我上面建议的那样)?


Update: this 不再有效 https://developer.android.com/reference/android/app/ActivityManager#getRunningTasks(int) with 其他应用'Android 5.0 起的活动


这是使用活动管理器来完成此操作的好方法。 您基本上从活动管理器获取正在运行的任务。它总是首先返回当前活动的任务。从那里你可以获得topActivity。

示例在这里 http://qtcstation.com/2011/01/getting-info-about-your-currently-running-activities/

有一种简单的方法可以从 ActivityManager 服务获取正在运行的任务列表。 您可以请求手机上运行的最大任务数,默认情况下,首先返回当前活动的任务。

获得后,您可以通过请求列表中的 topActivity 来获取 ComponentName 对象。

这是一个例子。

    ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
    Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());
    ComponentName componentInfo = taskInfo.get(0).topActivity;
    componentInfo.getPackageName();

您的清单上需要以下权限:

<uses-permission android:name="android.permission.GET_TASKS"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何获取当前的前台活动(从服务)? 的相关文章

  • Android Studio 拒绝运行 main()

    重现步骤 在Android Studio中启动一个新项目 使用最新更新 创建一个新类并像往常一样添加 main 右键单击类以运行 main 作为测试 package test public class Test public static
  • Android 中的计时器任务在无限期时间后停止运行

    我是安卓新手 我正在开发一个应用程序 其中一段特定的代码在后台每 5 秒后执行一次 为了实现这一目标 我使用带有定时器的服务 其中包含定时器任务 有时它工作正常 但经过一段时间后 我的服务正在运行 但计时器任务在 android 中自动停止
  • 运行带有 QVGA 的 Android 1.6 的模拟器上的缩放控件

    我正在模拟器中的不同 AVD 设置上测试我的应用程序 并在仅使用 QVGA 分辨率 lcd 密度 120 的 Android 1 6 上的 MapView 中遇到缩放控件问题 当点击屏幕以显示缩放控件时 放大 加号显示得比缩小大得多 这似乎
  • 如何刷新 Android 上的 MediaStore?

    这最初是 Android 论坛上的一个一般用户问题 然而 它必然成为一个编程问题 这是我的问题 Android 有一个服务 MediaScanner 每当 我相信 SD 卡卸载和重新安装时它都会在后台运行 该服务收集卡上所有媒体文件的数据
  • 安卓写入文件

    经过几周的不编程之后 我决定完成我的应用程序 上次我无法进行文件写入和读取 现在我想做 我也许可以使用数据库 但这似乎容易得多 我已经发现this http narenst wordpress com 2010 01 25 android
  • 如何平移画布并仍然在正确的位置获取触摸事件

    我正在尝试创建一个自定义 AbsListView 覆盖 ListView GridView 和 HeaderGridView 上的相同内容 它将根据外部因素 在布局上移动的其他内容 重新定位其所有绘图和触摸事件 填充在这里不是一个选项 因为
  • ListView 可以存储多少个项目?

    我是 Android 编程新手 我想知道ListView可以存储多少个项目 我在文档中搜索 但他们没有谈论这个 如果我将很多 可能是 10k 项放入 ListAdapter 中 会影响性能吗 干杯 MK ListView 在 Android
  • Android 4.4 (kitkat) 版本中的短信阻止和允许问题

    我们在 Google Play 上推出了短信拦截应用程序 如果满足任何阻止条件 它就会阻止短信 否则我们允许短信发送到本机收件箱 它在除 android 4 4 Kitkat 之外的所有版本上都运行良好 我们尝试实现适用于 4 4 的新短信
  • DP5 7.0 - 向待处理意图添加额外内容是否会失败?

    在跟踪器上添加链接的问题 因此 我今天在我的 Nexus 5X 上安装了 DP5 Android 7 0 版本 我一直在开发一个应用程序 它使用 Android 的 AlarmManager 类在特定时间安排本地通知 在此版本之前 代码在运
  • Motorola Android 2.2 相机忽略 EXTRA_OUTPUT 参数

    我以编程方式打开相机来拍摄视频 我告诉相机使用如下代码将视频文件放置到指定位置 Intent intent new Intent MediaStore ACTION VIDEO CAPTURE File out new File sdcar
  • 在 Volley 中更新 UI 最有效的方法是什么

    最近我在 android 中使用 Volley 库 它工作得很好 但我想知道更新 UI 的最有效方法 我有一个包含所有 Volley 方法的 Utils 类 现在我传递了所有视图将作为参数更新 但我读到我可以在活动中实现侦听器 然后将它们作
  • Android Ant项目参考

    我有一个 Android 项目 它有一个 Java 项目文件夹引用 我是用eclipse开发的 现在我想用Ant编译 我想在 build xml 中添加内容以包含引用 假设您的项目名为 HelloListview 比如说 并且您希望所有 A
  • 三星 Galaxy Note 上的布局

    我有一个奇怪的问题 只出现在 Samsung Galaxy Note 上 我有横向和纵向布局 正常和大 如下 http developer android com guide practices screens support html h
  • 滑动抽屉上的按钮? - 安卓

    好吧 我已经在我正在构建的 Android 应用程序中的滑动抽屉上实现了一个按钮 唯一的问题是 当我按下按钮时 整个滑动抽屉都会被按下并向上滑动 我知道我可以在 XML 中禁用 按向上滑动 但这似乎不起作用 因为滑动抽屉仍然在没有向上滑动的
  • 具有 jsonObject 的 android 列表视图

    我正在开展一项活动 该活动请求服务器上的一个 php 文件 此 php 文件将返回给我一个JSONArray having JSONObjects作为它的元素 我明白了jArray并提取其内容 例如所有jsonObjects 每个 json
  • Android:将“内部”链接添加到 TextView 的一部分,该链接链接到我的代码中的操作

    正如标题所解释的 我想添加链接到我的TextView 有这两个警告 我希望链接能够作用于TextView 不是完整的 类似于AHTML 中的锚点 我希望链接指向我的代码中的操作 而不是网站 我可以在我的活动中定义一个方法 或者实现一个OnC
  • 如何使用 Android 手机通话时播放声音?

    是否可以通过编程方式与电话进行交互 例如 您可以通过程序向呼叫者播放音频吗 Google 尚未公开任何允许我们向特定正在进行的调用提供数据的 API 不过 您可以控制通话 检查这篇文章 here http prasanta paul blo
  • React Native - 方向锁定;我还能获得传感器的方向吗?

    我正在开发一个 React Native 应用程序 该应用程序设计为以纵向模式运行 方向通过清单锁定
  • okHttp3 java.lang.NoSuchMethodError:没有虚拟方法 setCallWebSocket

    我已从 okhttp Retrofit 更新到 okhttp3 Retrofit2 但我的应用程序因此异常而无法启动 FATAL EXCEPTION EventThread Process appli speaky com PID 1470
  • SDK管理器不显示示例包选项

    我关注的是安卓安装示例的开发人员链接 http developer android com tools samples index html包裹 但是 当我展开Android平台的包列表时 没有 SDK示例 选项 复选框 可用 为什么 我已

随机推荐