有2个问题请教一下大家,欢迎一起讨论.问题一:有2个自己写的应用程序,应用A怎么获取应用B的当前界面(activity)信息? (就像ActivityManager一样能获取所有应用的当前界面和跳转界面的信息).问题二:也是自己写的2个应用程序,当应用A通过登陆界面到达主界面时候,按了home键,然后用应用B去唤起应用A,应用A为什么又要到登陆界面?而不是主界面?怎么解决?

解决方案 »

  1.   

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    ComponentName cn = am.getRunningTasks(1).get(0).topActivity;(注意加入权限)
            cn.getClassName()得到当前activity 然后socket传递给A。
      

  2.   

    1,我觉得要是想做到相同的效果,应该不会用Activity,而是用service,Activity只是用来显示的,service和Activity用binder传数据
    2,应该是Activity的生命周期问题,程序只显示栈顶的Activity,在一个Activity暂停时就让另一个Activity到栈顶
      

  3.   


    1,之前用自定义广播实现的,不过每个页面跳转都要广播一下,这里就有个问题,本来Activity就是用广播跳转的吧?我能不能截到这个广播?用service是比较理想的,ActivityManager就是用服务实现的,我研究一下.2,我的问题是一个应用按了home键隐藏了,然后恢复该应用最后一次显示的Activity.非常感谢大家的回复.
      

  4.   


    问题二你们忽略了一个activity,就是按了home键到达程序自带的Launcher程序.如果只是自己写的2个应用程序切换,当然可以用finish()把最上面的activity关闭而到达刚才被隐藏的应用界面.这还是个问题.用这种机制还是有点不靠谱的,有没有可以直接获取到一个应用最上层的activity?