android开发分享完成旧的活动,并开始一个新的,反之亦然

我知道,我得到了两个代码片段相同的结果

finish(); startActivity(newActivity); 

 startActivity(newActivity); finish(); 

我想知道你的意见,如果他们之间有很大的区别。 这个比那个好吗? 如果是这样,为什么?

    当你做startActivity()时,所做的一切就是将你的意图发布到一系列事件中。 活动的实际开始在不久的将来会asynchronous发生。 所以我没有看到两者之间的巨大差异。

    animation显然是不同的(至less在4.1以上)。 调用finish()首先开始淡化第一个活动,在新活动淡入之前,您可以简要地看到黑色背景。调用startActivity()首先淡入旧活动顶部的新活动,黑色背景不淡入可见。

    我会做第二select,我没有支持任何从官方来源查询的东西,但是在调用完成之前启动新的活动更有意义,这样新的活动就会通过意图popup,现在的后台活动可以调用所有的清理方法。

    如果你反其道而行,也许意图在清理完成之前不会有时间开火。 即将完成()调用后,活动调用startActivity()?

    我希望你明白我想说的是什么,为了安全,我会做第二个select。

    除了Emmanuels的回答:

    两个方法startActivityfinish都将在调用方法结束进行调度,因为两者都由UI线程处理。

    我有类似的问题:

     Activity A: singleInstance Activity B: singleInstance Activity C: singleInstance A starts BB starts C C wants to start A: 

    这里如果我使用:

     finish(); startActivity(A); 

    事情有线发生:活动B来到前景而不是A! 但是如果我改变这样的代码:

     startActivity(A); finish(); 

    一切似乎都可以,活动A可见。

    我不知道是什么问题,但是看起来在第一种情况下,C在执行startActivity命令之前已经完成了,所以后面的堆栈处理了情况并显示了它的最高活动,即B! 但在第二种情况下,一切正常发生。

    我通常在finish() startActivity()之前做startActivity() ,因为我认为确保新的屏幕出来之前出来。

    我在我的应用程序中有一个login页面。 用户login成功后,login活动消失,主要活动已启动。 它在Android 4中工作正常。

    今天我想在材料devise中重写它。 但是,我遇到了一个很大的问题。 新的Android工作室创build空白的活动与我认为需要很多资源的材料devise。 同样的过程,但我得到了错误

     11-26 18:20:44.450 18397-18397/? I/Choreographer: Skipped 42 frames! The application may be doing too much work on its main thread. 11-26 18:20:44.485 18397-18408/? I/art: Background partial concurrent mark sweep GC freed 2864(191KB) AllocSpace objects, 4(43MB) LOS objects, 13% free, 100MB/116MB, paused 8.056ms total 39.767ms 

    它说我的应用程序需要很多的资源,当mainActivity开始在我的手机logcat。 mainActivity没有任何内容,只是它是默认的Material Design布局。

    我颠倒了顺序,现在它在我的手机上没有错误的工作。

    第三种方法(如果你正在开始和停止相同的活动types):

    为了避免任何可能的竞争条件和jankyanimation,请调用recreate()而不是使用您提供的任一选项。

      以上就是android开发分享完成旧的活动,并开始一个新的,反之亦然相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/515287.html

      (0)
      上一篇 2020年11月30日
      下一篇 2020年11月30日

      精彩推荐