当前位置:编程学习 > wap >>

android 获得当前正在运行的activity的引用

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(2).get(1).topActivity;

这里得到了这个activity的名字,可是如何得到它的引用呢?

ComponentName与Activity的引用如何进行转换? --------------------编程问答-------------------- ComponentName 不就是PackageName和Activity的ClassName组合起来的么? --------------------编程问答--------------------
引用楼主 tc_ct 的回复:
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(2).get(1).topActivity;

这里得到了这个activity的名字,可是如何得到它的引用呢?

ComponentName与Activity的引用……

问题怎么解决的? --------------------编程问答-------------------- intent.setComponent(ComponentName);
startActivity(intent); --------------------编程问答-------------------- 没找到解决办法。
主要想从当前的activity的引用获得这个activity的屏幕截图,但就是不知道如何获得当前activity的引用 --------------------编程问答-------------------- 在你要获得实例的那个类中增加一个公共的静态变量,保存引用,不就可以获得了吗!!!! --------------------编程问答--------------------
引用 5 楼 dingshaofengbinbin 的回复:
在你要获得实例的那个类中增加一个公共的静态变量,保存引用,不就可以获得了吗!!!!

我是想获得任意一个activity的引用,而不是一个特定的activity --------------------编程问答--------------------
引用 5 楼 dingshaofengbinbin 的回复:
在你要获得实例的那个类中增加一个公共的静态变量,保存引用,不就可以获得了吗!!!!


这个情况没遇到过,不过在截图上,我至今有问题
不知这位兄弟能给我解惑不?

1.通过window获取活动Activity,获取次Activity的图像。  
2.通过View,获取View的图像  
3.通过DDMS获取截图,但是是在PC端运行,在device上不能跑  
4.获取Framebuffer,从中读取图像信息,但是需要root权限。  
 
1和2都试过了,这两种方法在截出的图什么都没有。譬如说截一个网页,你什么都截不到,只有一片黑色。貌似只能截到绘制到canvas上的图。

3很明显不行、、、

4需要root权限,暂时还没弄


你只能获取正在运行总的Activity的名字,然后在转换得到他的类,获取不到实例。
采用静态变量 --------------------编程问答--------------------
引用 7 楼 dxawmhmy 的回复:
引用 5 楼 dingshaofengbinbin 的回复:
在你要获得实例的那个类中增加一个公共的静态变量,保存引用,不就可以获得了吗!!!!


这个情况没遇到过,不过在截图上,我至今有问题
不知这位兄弟能给我解惑不?

1.通过window获取活动Activity,获取次Activity的图像。  
2.通过View,获取View的图像  
3.通过DDMS获取截图,但是……

方法4可行。
至于root权限,市面上的软件好像都是破解过才能用这些截屏软件 --------------------编程问答-------------------- 学习了,顶一下!!! --------------------编程问答--------------------
引用 楼主 TC_CT 的回复:
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(2).get(1).topActivity;

这里得到了这个activity的名字,可是如何得到它的引用呢?

ComponentNam……

同问????? --------------------编程问答-------------------- LZ找到方法解决没。。。遇到同样的问题 --------------------编程问答--------------------
引用 11 楼 xiaxiangnanxp1989 的回复:
LZ找到方法解决没。。。遇到同样的问题


没有。。

提出这个问题主要是想截屏,后来还是通过FrameBuffer来截的 --------------------编程问答--------------------
引用 9 楼 sanyu626 的回复:
学习了,顶一下!!!
 ++ --------------------编程问答--------------------
引用 10 楼 xiaxiangnanxp1989 的回复:
Quote: 引用 楼主 TC_CT 的回复:

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(2).get(1).topActivity;

这里得到了这个activity的名字,可是如何得到它的引用呢?

ComponentNam……

同问?????
++ --------------------编程问答-------------------- 其实很简单的了,获取ComponentName,使用反射获得相应的活动类,然后使用LocalActivityManager得到他的VIEW,既可以直接把得到的VIEW加载到你的VIEW里,也可以把VIEW通过DRAW方法转为BITMAP,画出来,灵活运用了,如果非要抓图了,可以参考4.0以后的版本,默认有抓图源代码了,既有BITMAP的BUFFER,也有存成的PNG了 --------------------编程问答-------------------- 其实非要最近运行的程序快照的话,4.0以后的代码里是有的,好像是在ActivityManager.java中的getTaskThumbnails里的,系统直接有最近运行的程序快照的 --------------------编程问答-------------------- 你QQ还一直用不用,你都一直不在线的吧,我也一直不上线 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 用activity 来调用getContentView --------------------编程问答-------------------- 不可以获取当前的上下文context吗?
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,