Android 中获取当前的 Activity
来源:互联网 发布:知已唯美图片 编辑:程序博客网 时间:2024/06/11 08:43
需求:获取当前的 Activity
对象,Activity
是系统创建的,一种方法:在 onCreate
的时候拿到引用,这样就得修改 onCreate
方法,还得维护一个数组去管理 Activity
的引用。第二种方法:通过反射拿到 ActivityThread
中的 mActivities
属性,进而拿到当前的 activity 对象( paused 为 false 的activity)。
public static Activity getActivity() { try { Class activityThreadClass = Class.forName("android.app.ActivityThread"); Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); Field activitiesField = activityThreadClass.getDeclaredField("mActivities"); activitiesField.setAccessible(true); Map activities = null; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { // 4.4 以下使用的是 HashMap activities = (HashMap) activitiesField.get(activityThread); }else{ // 4.4 以上使用的是 ArrayMap activities = (ArrayMap) activitiesField.get(activityThread); } for (Object activityRecord : activities.values()) { Class activityRecordClass = activityRecord.getClass(); Field pausedField = activityRecordClass.getDeclaredField("paused"); // 找到 paused 为 false 的activity pausedField.setAccessible(true); if (!pausedField.getBoolean(activityRecord)) { Field activityField = activityRecordClass.getDeclaredField("activity"); activityField.setAccessible(true); Activity activity = (Activity) activityField.get(activityRecord); return activity; } } } catch (Exception e) { e.printStackTrace(); } return null;}
文章来自: http://hanks.xyz
0 0
- android中获取当前activity的名称
- android中获取当前activity的名称
- Android 中获取当前的 Activity
- Android中获取当前的Activity
- android中获取当前activity的名称
- android 获取当前的activity
- android中获取当前Activity的实例和名字
- Android开发中关于获取当前Activity的一些思考
- android 获取当前正在运行的activity
- Android获取当前最前面的Activity
- android 如何获取当前运行的activity
- android 获取当前屏幕的Activity
- Android 获取当前activity的屏幕截图
- Android获取当前界面的activity
- android 获取当前屏幕显示的Activity
- 获取当前Tab中对应的Activity
- Android获取当前激活Activity
- Android Tip : Android 获取当前Activity对象的方式:
- acm_最短路
- 质数因子
- 处理下载文件时中文乱码
- 对于解析xls(excle表格数据 )
- servlet读书笔记
- Android 中获取当前的 Activity
- 统计一行字符中有多少个单词
- macbook win10下声音键和触摸板右键键盘灯无法使用解决方法
- 上海科目三要点
- 自定义Builder的构造
- 弹性布局
- 如何在5.0上实现button的Ripple(水波效果)
- 14 指针及其运算
- Android 5.0中设置全屏无标题