我现在在主activity的ViewPager中通过PagerAdapter在ViewPager加载数据(多个activity)将多个activity放入ArrayList中并通过LocalActivityManager进行子activity的初始化,
初始显示子activity(假设为 a )
滑动到另一个子activity(b)
发现a并没有调用相应的onPause函数
我在 下面这个帖子里http://topic.csdn.net/u/20120412/01/8200a047-6c41-4e72-8e58-e9d4c1bc27d4.html?r=78217250 看到过答复,可是我去下载了Source for android sdk 后,没有发现你说的DialtactsActivity
请问要如何处理,感谢

解决方案 »

  1.   

    这个问题我已经解决了,这个你要看看整个activity的调用原理,好像是AMS什么的,viewpager中加载的那些activity其实没有真正的“实例化”这样说可能不标准,意思就是说 只是用了activity的各个窗口样子,没有将它们加入到AMS中管理,你可以通过在现实viewpager的activity中实现一个接口然后在判断滑动到那个activity将主activity的onpause等方法传递给子activity就行了。
      

  2.   

    2l说的和我意思差不多,4.0源码的联系人中肯定 有DialtactsActivity或者PeopleActivity的,为什么没有走onPause是因为Activity a和b只是其窗体所对应的view加载到了ViewPager中,左右滑动并没有涉及到界面间的跳转,要界面跳转要么让ActivityManager Service管理,要么通过LocalActivityMangager。而现在只是view的滑动。要让onPause执行,要在界面切换的方法中手动触发一下。比如,在onPageSelected方法中加上个a.onPause();或者自定义借口,模仿activity的生命周期
      

  3.   

    在4.0源码里,找到了DialtactsActivity,但是没有看到实现 VissibleChangeListener 接口
    我最后用广播做的,不管怎么样,暂时解决了,有空继续琢磨吧