Android获得栈中最顶层的Activity
1 /** 2 * 获得栈中最顶层的Activity 3 * 4 * @param context 5 * @return 6 */ 7 public String getTopActivity(Context context) 8 { 9 android.app.ActivityManager manager = (android.app.ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE); 10 List<ActivityManager.RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1); 11 12 if (runningTaskInfos != null) 13 { 14 return (runningTaskInfos.get(0).topActivity.getClassName()); 15 } else 16 return null; 17 } 18 19 try 20 { 21 Intent intent = new Intent(MainActivity.this, Class.forName("com.johnson.main.Activity1")); 22 startActivity(intent); 23 } catch (ClassNotFoundException e) 24 { 25 e.printStackTrace(); 26 } 27 28 29 ================ 30 31 32 Context context = createPackageContext("com.johnson.main.common.Activity2",
Context.CONTEXT_INCLUDE_CODE |
Context.CONTEXT_IGNORE_SECURITY); 33 openDiaog((Activity) context); 35 Class clazz = context.getClassLoader().loadClass(topActivity);//载入这个类 36 Object owner = clazz.newInstance(); //新建一个实例 37 Object obj = clazz.getMethod("openDiaog", String.class).invoke(owner, context); //获取print方法,传入参数并执行
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步