百恒网络
android项目中activity的使用与管理
  • 百恒服务
  • APP开发
  • 网页案例
  • 网页知识
  • 关于我们
  • 联系我们
  • android项目中activity的使用与管理

    2017-04-19 17:42:08 3919
           来看看当我们在各activity间往返的时候,操作系统层面到底发生了什么。首先,在桌面启动器中点击GeoQuiz应用时,操作系统并没有启动应用,而只是启动了应用中的一个activity。确切地说,它启动了应用的launcher activity。在GeoQuiz应用中,QuizActivity就是它的launcheractivity。
           使用应用向导创建GeoQuiz应用以及QuizActivity时,QuizActivity默认被设置为launcher activity。配置文件中,QuizActivity声明的intent-filter元素节点下,可看到QuizActivity
           被指定为launcher activity,如下代码所示。
           代码清单 QuizActivity被指定为launcher activity(AndroidManifest.xml)
    南昌APP开发
           QuizActivity实例出现在屏幕上后,用户可单击CHEAT!按钮。CheatActivity实例随之在QuizActivity实例上被启动。此时,它们都处于activity栈中,如下图所示。
           单击后退键,CheatActivity实例被弹出栈外,QuizActivity重新回到栈顶部,如上图所示。
           在CheatActivity中调用Activity.finish()方法同样可以将CheatActivity从栈里弹出。如运行GeoQuiz应用,在QuizActivity界面单击后退键,QuizActivity将从栈里弹出,我们将退回到GeoQuiz应用运行前的画面,如下图所示。
    南昌APP开发
           如从桌面启动器启动GeoQuiz应用,在QuizActivity界面单击后退键,将退回到桌面启动器界面,如下图所示。
    南昌APP开发
           在桌面启动器界面,点击后退键,将返回到桌面启动器启动前的系统界面。
           至此,可以看到,ActivityManager维护着一个非特定应用独享的回退栈。所有应用的activity都共享该回退栈。这也是将ActivityManager设计成操作系统级的activity管理器来负责启动应用activity的原因之一。不局限于单个应用,回退栈作为一个整体共享给操作系统及设备使用。
           南昌百恒网络专业从事南昌微信开发,南昌APP开发等服务,拥有十多年丰富经验,技术精湛,专业性强,服务周到,价格公正,欢迎广大新老客户朋友来电咨询,洽谈合作!
    展开分享
    服务
    案例
    首页
    动态
    联系
    咨询