1 方式一

    public void getAllActivity() {PackageManager packageManager = getPackageManager();PackageInfo packageInfo = null;try {packageInfo = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES);//所有的Activity ActivityInfo[] activities = packageInfo.activities;for (ActivityInfo activity :activities ) {Class<?> aClass = Class.forName(activity.name);}} catch (PackageManager.NameNotFoundException | ClassNotFoundException e) {e.printStackTrace();}}

2 方式二 反射

    private static List<Activity> getActivitiesByApplication(Application application) {List<Activity> list = new ArrayList<>();try {Class<Application> applicationClass = Application.class;Field mLoadedApkField = applicationClass.getDeclaredField("mLoadedApk");mLoadedApkField.setAccessible(true);Object mLoadedApk = mLoadedApkField.get(application);Class<?> mLoadedApkClass = mLoadedApk.getClass();Field mActivityThreadField = mLoadedApkClass.getDeclaredField("mActivityThread");mActivityThreadField.setAccessible(true);Object mActivityThread = mActivityThreadField.get(mLoadedApk);Class<?> mActivityThreadClass = mActivityThread.getClass();Field mActivitiesField = mActivityThreadClass.getDeclaredField("mActivities");mActivitiesField.setAccessible(true);Object mActivities = mActivitiesField.get(mActivityThread);// 注意这里一定写成Map,低版本这里用的是HashMap,高版本用的是ArrayMapif (mActivities instanceof Map) {@SuppressWarnings("unchecked")Map<Object, Object> arrayMap = (Map<Object, Object>) mActivities;for (Map.Entry<Object, Object> entry : arrayMap.entrySet()) {Object value = entry.getValue();Class<?> activityClientRecordClass = value.getClass();Field activityField = activityClientRecordClass.getDeclaredField("activity");activityField.setAccessible(true);Object o = activityField.get(value);list.add((Activity) o);}}} catch (Exception e) {e.printStackTrace();list = null;}return list;}

3 获取栈顶 Activity

    //获取栈顶Activity及其所属进程public static String getTopActivityNameAndProcessName(Context context) {String processName = null;String topActivityName = null;ActivityManager activityManager =(ActivityManager) (context.getSystemService(android.content.Context.ACTIVITY_SERVICE));List<ActivityManager.RunningTaskInfo> runningTaskInfos = activityManager.getRunningTasks(1);if (runningTaskInfos != null) {ActivityManager.RunningTaskInfo runningTaskInfo = runningTaskInfos.get(0);ComponentName f = runningTaskInfo.topActivity;String topActivityClassName = f.getClassName();String temp[] = topActivityClassName.split("\\.");//栈顶Activity的名称topActivityName = temp[temp.length - 1];int index = topActivityClassName.lastIndexOf(".");//栈顶Activity所属进程的名称processName = topActivityClassName.substring(0, index);System.out.println("---->topActivityName=" + topActivityName + ",processName=" + processName);}return topActivityName;}

Android获取所有Activity相关推荐

  1. android获取当前activity view,Android中如何通过View获取Activity

    在开发过程中,我们会遇到下面情况: Button button = (Button) findViewById(R.id.btn); button.setOnClickListener(MainAct ...

  2. Android多个权限多次请求,android – 获取W / Activity:一次只能请求一组权限

    我制作了一个应用程序,它有摄像头和GPS的请求,但是当我执行时,我会多次收到此警告,而不到1秒. W/Activity: Can reqeust only one set of permissions ...

  3. android 获取多个控件,Android----获取activity上所有的控件

    /** * @note 获取该activity所有view * @author liuh * */ public List getAllChildViews() { View view = this. ...

  4. android获取activity截图,Android Activity 不能被截屏的解决方法

    Android Activity 不能被截屏的解决方法 在Activity 添加即可 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECU ...

  5. android屏幕密度高度,Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)...

    我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现.下面就分享一下Android中常用的一些辅助方法: 获取屏幕高度: /** * 获得屏幕高度 * @para ...

  6. android获取手机通讯录

    在android中读取联系人信息的程序,包括读取联系人姓名.手机号码和邮箱 (转载自博客:http://www.cnblogs.com/error404/archive/2013/03/12/2956 ...

  7. Android四种Activity的加载模式(转)

    建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式: Android的进程,线程模型: http://www.cnblogs.com/ghj1976/archive/2011/0 ...

  8. android 获取短信验证码倒计时

     android 获取短信验证码倒计时 public class MainActivity extends Activity { private Button submit;     privat ...

  9. android获取连接wifi名称,android 获取当前连接WIFI名称的有关问题

    android 获取当前连接WIFI名称的问题 我在程序内通过以下方法获取当前连接的WIFI名称(SSID),这个也是网上找别人的,但在我程序内就获取不到呢? 1.在AndroidManifest.x ...

最新文章

  1. Chain of Responsibility 责任链模式 MD
  2. 【数学 技巧】2.14计数
  3. 【直播资料下载】Python第五讲——关于爬虫如何做js逆向的思路
  4. 统计学习方法笔记(七)-线性支持向量机原理及python实现
  5. 工作流笔记第一天_简单介绍activiti
  6. RedHat6.2 x86手动配置LNMP环境
  7. C#LeetCode刷题之#643-子数组最大平均数 I( Maximum Average Subarray I)
  8. (五)流比特币价格的AI预测和异常检测
  9. php session 设置无效
  10. 广播BroadcastReceiver(2)
  11. FL Studio20.8.2(水果win10)中文版主要软件更新内容
  12. Android项目之电话黑名单
  13. 淘宝网卖家必须缴纳消保保证金才能发布宝贝的商品类目
  14. oracle查询存储过程完整的sql,SQL命令查询Oracle存储过程信息(代码内容等)
  15. 三菱FX5U多冲一切追剪程序。 无需40SSC运动模块,通过软件电子凸轮算法实现追剪功能
  16. concurrent mode failure
  17. Chainlink官方文档翻译(二) 中间件-随机数 Intermediates - Random Numbers)
  18. LDAP、OLAP、OLTP详细介绍
  19. 曙光服务器如何重新设置u盘启动_在中科曙光I620-G20服务器上安装Windows 2008 R2 系统步骤...
  20. 合伙人制度是梦想、价值观和利益的捆绑

热门文章

  1. 从Kaggle HuBMAP 比赛中学习语义分割
  2. CVPR 2020 论文大盘点-超分辨率篇
  3. 学术人必备!懒人制作学术会议Oral/Spotlight Video指南
  4. 强化学习常用算法+实际应用
  5. Mask R-CNN抢车位,快人一步!
  6. 零基础快速入门python教程,结合新手练习的5大项目
  7. 前排!零基础小白学习3D建模的必经之路
  8. linux io函数,unix/Linux低级IO函数的用法有哪些? 爱问知识人
  9. 收藏 | 在算法工程师的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?...
  10. PyTorch | torch.from_numpy使用方法 | torch.from_numpy如何使用?torch.from_numpy()例子 | 通过torch.from_numpy创建张量