我通过这段代码,获取到了正在显示的activityActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
然后想通过反射执行正在显示的那个Activity的实例里的方法,但是苦于不知道怎么获取这个Activity实例,所以连反射也没办法使用。麻烦知情人士能告诉我一下怎么获取,谢谢了!

解决方案 »

  1.   

    本帖最后由 yyy025025025 于 2010-10-09 01:53:30 编辑
      

  2.   

    增加一个static变量标示正在运行的activity?参考http://www.eoeandroid.com/thread-32048-1-1.html
      

  3.   


    我想获取的不是自己写的的Activity实例,而是正在运行中的系统程序的Activity实例
      

  4.   


    这个我知道,但是要在当前显示的Activity中进行一些操作,必须获取当前显示的Activity的实例。
      

  5.   


    activity实例在框架的activityThread里面管理:mActivity;
    2.2版本api只能获取顶层activity组件名,应该没有获取实例的。
      

  6.   

    查看activity源码可以看到,该类没有实现parcel,也就是android设计意图没有打算把activity实例透过代理类传递给应用使用,请考虑你的目标是否可以通过其他方法实现。
      

  7.   

    让activity从某个接口继承过来,通过instanceof来判断是哪一类的activity,这个接口还可以提供一个方法,例如getType来获得其类型。
      

  8.   

    在需要调用runOnUiThread()的线程中,建一个constructor,然后在Activity中新建这个实例的时候把本身当参数传进去。...
    Activity acty;
    Constructor(Activity act)
    {
    this.acty=act;
    }然后就可以用acty.runOnUiThread()了。