美文网首页
关于Android的Activity的一些自己的总结

关于Android的Activity的一些自己的总结

作者: 送外卖的程序员 | 来源:发表于2020-02-08 17:53 被阅读0次

    概述:上大学期间开发过Android app,但也是东拼西凑最好艰难的完成了。加上时间的推移,对于Android的了解也是所剩无几。目前想重新学习Android开发,希望把自己的想法做成App。所以以下只是自己对Activity的浅显理解,都是大白话,也希望能够帮助到大家,并且也烦请大家看到不对之处及时指出,大家能够共同进步。

    图片来源https://pixabay.com/photos/computer-computers-1245714/

    Activity生命周期:

        共有7个生命周期:onCreate(), onStart(), onResume(),  onPause(), onStop(), onRestart(), onDestory()

        当用户启动应用时,会调用根Activity的onCreate(), onStart(), onResume()。当用户一直属于与此Activity交互的状态,则会保持onResume()状态。

        当用户使当前页面处于半透明状态,那么Activity则处于onPause()状态,当回到页面则重新调用Activity的onResueme()状态。如下图所示:

    半透明状态

        如果用户退出应用回到手机菜单,或打开其他应用(并没有销毁应用),则Activity处于onStop()状态,再次回到此应用则会重新调用Activity的onStart()状态,然后调用onResume()状态。Activity长时间处于onStop()状态,再次回到页面可能会回到根Activity()。

        当用户退出应用回到手机菜单,打开其他应用,然而新打开的应用需要更大的内存或者内存不够可能会彻底销毁Activity,也就是onDestory()。

    Stack栈:

        为了方便管理Activity,Activity会以后进先出的排序方式放入(push)到栈(Stack)中。用户打开应用第一步会调用根Activity被push到stack中,当根Activity启动其他Activity,则根Activity处于stack底部,新启动的Activity处于stack中的顶部。如用户返回根Activity,则当前Activity会被从stack中remove。如果用户退出应用后再次返回应用,则会回到处于Stack顶部的Activity。

        当用户一直返回,那么Activity会按照后进先出的顺序从stack中remove。

    Task任务:

        一般情况下,每个应用都属于一个task。我们启动应用时,那么应用相关联的Activities会被放入同一个task中对应的stack里。如果用户退出应用,那么应用的task任务会被终止,当想再次返回此task任务时,只需要调用task中对应的stack里的Activity即可恢复之前所处在的状态。

        因为相同的Activity可以被多次实例化,所以用户可以通过设置启动模式来选择相关联的task任务,也就是说当用户从一个Activity中启动另一个Activity,可以选择启动模式,可以将新启动的Activity放入到新的task中。

        根据上述所说我们也可以反其道而行之,将不同应用的Activity放入到同一个task中对应的stack里,从而达到跨应用之间的交互也保证能够回到应用的上一级菜单(Activity)。举例来说微博有分享文章到微信的功能,此时我们可以选则将矿应用之间的分享微信这个Activity放入到微博的task对应的stack里,从而达到回到微博继续浏览的功能。

       

    相关文章

      网友评论

          本文标题:关于Android的Activity的一些自己的总结

          本文链接:https://www.haomeiwen.com/subject/dluixhtx.html