android中关于Activity栈之间的跳转问题

小牧 发布于 2013/05/24 09:12
阅读 1K+
收藏 0

     在我的APP中有MainActivity 与 B 这2个Activity。 现在我注册了一个全局广播类,在MainActivity中点击发送按钮,将发送广播到全局广播类中。在全局广播类中我启动B 这个Activity,这时候必须要声明为Flag_activity_new_task 。这样MainActivity与B就处于不同的Task中。


    如果我在B中点击关闭按钮,finish掉本身,发现回到MainActivity的时候会重新onCreate。 请教大家有没有好的办法,使之不重新onCreate。 谢谢!!!

加载中
0
小牧
小牧
咋没人来回答了啊。 
0
pseudo
pseudo

如果要达到你的需求你就得让MainActivity到pause或stop状态,但stop状态的activity很容易被kill,要达到pause就得让MainActivity可见但不是在activity栈的最上层。你可以使B activity的样式为半透明或者为小窗口就可以了

小牧
小牧
B activity 是个全屏视频窗口。 要全屏, 兄台,有办法不? 在线等待大神的方案了。
0
luozhusheng
luozhusheng

我要纠正1点错误:

MainActivity和B是在一个task中,不要问我为什么,也不要说你FLAG为NEW_TASK。除非你在xml中定义了2个activity的task affinity不一样。

至于MainActivity会走oncreate,那我觉得可能是你代码的问题,正常情况下是直接走onrestart。因除mainactivity被kill掉,或者mainactivity在xml中有其他属性

小牧
小牧
自己动手,丰衣足食。 自己写了个Demo测试,发现确实跟NEW_TASK无关,不会去执行onCreate,问题点,继续查看自己的代码。谢谢!
0
purplechen
purplechen

引用来自“Chauvet”的答案

如果要达到你的需求你就得让MainActivity到pause或stop状态,但stop状态的activity很容易被kill,要达到pause就得让MainActivity可见但不是在activity栈的最上层。你可以使B activity的样式为半透明或者为小窗口就可以了

@Override
    protected void onCreate ( Bundle savedInstanceState ) {
        super . onCreate ( savedInstanceState );
.....       
        requestWindowFeature ( Window . FEATURE_NO_TITLE );
.....
 }
purplechen
purplechen
回复 @小牧 : 添上这个getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
小牧
小牧
这是只是隐藏标题的吧。
返回顶部
顶部