有没有一种原生的 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(使用前将#替换为@)