LocalActivityManager m = new LocalActivityManager(this, true);
m.dispatchCreate(savedInstanceState);  
Intent iActivity = new Intent(this, MyActivity.class);
final Window w = m.startActivity("MyActivity", iActivity);
View view = w.getDecorView();

                frameLayout.addView(view, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
         FrameLayout.LayoutParams.FILL_PARENT));

解决方案 »

  1.   

    onCreate也执行了,而且MyActivity确实显示出来了
      

  2.   

    楼主的做法很特殊啊,LocalActivityManager是这么说明的:Helper class for managing multiple running embedded activities in the same process. This class is not normally used directly, but rather created for you as part of the ActivityGroup implementation.
    而且把一个窗口的内容加入另一个窗口又是为什么呢,android支持吗,不太理解。
      

  3.   


    源代码中的TabHost.java就是使用了LocalActivityManager才创建了多个view的。可是源代码这么做,Activity的onResume会执行。
      

  4.   

    TAB是用来管理多个activity而不是多个view的
      

  5.   


    在TabHost.java文件中,就是把activity的view取出来了。然后tab对view进行管理。可以查看TabHost.java的第644行。
      

  6.   

    感觉是LocalActivityManager把activity hold在onResume之前。试了一下,发现唤起的activity 只跑了onCreate和onStart。看了代码,发现startActivity中,有个变量mCurState,在你的调用中它只是INITIALIZING状态,所以activity 不会跑到onResume中。
      

  7.   


    如果你将m.dispatchCreate(savedInstanceState);   改为m.dispatchResume(); 那么下个  activity 就会跑到onResume中了。
      

  8.   

    onResume是不是系统休眠之后,被唤醒才会去执行的函数啊?
      

  9.   


    问题解决了,需要调用LocalActivityManager的disptchResume()函数才可以唤起activity的onResume函数。