Activity生命周期 什么是activity:提供给用户交互的接口,实现点击、滑动等操作的界面。 4种状态:runningpausestoppedkilled Activity启动->onCreate()->onStart()->onResume() onResume()和onStart()均为前台可见 点击Home按键返回到主界面(Activity不可见)->onPause()->onStop() 当再次回到原Activity时->onRestart()->onStart()->onResume() 退出当前Activity时->onPause()->onStop()->onDestroy() Destroy:销毁和资源回收 进程优先级(优先级:高----->低):前台/可见/服务/后台/空 任务栈(Task) 栈结构:后进先出 一个Task包含Activity的集合,通过Task管理每一个Activity,可以结合Activity的启动模式去理解。实例:退出APP时,需要将Task种的Activity完全地移除,才能安全并且完全地退出应用。一个APP当中可能不止一个Task,但一个Activity可以独享一个Task 启动模式 1.Standard/标准模式:每启动一个Activity,则不会考虑当前Task中是否已经存在Activity的实例,直接创建并放置栈顶,缺点是比较消耗资源。 2.SingleTop栈顶复用模式:如果栈顶存在当前Activity的实例,则不去创建,直接复用栈顶的Activity。若不是,则创建。 3.SingleTask栈內复用模式:单例,检测整个任务栈是否存在Activity的实例,如果存在则移除销毁实例以上的Activity,并回调onNewIntent()方法。 4.SingleInstance:ActivityA独享一个Task,且App中有且只有一个ActivityA的实例。 Schema跳转协议 页面内跳转协议,通过定义自己的Schema协议,可以方便地跳转到app的各个页面。应用场景:服务端可以定制化告诉App跳转到相应页面;可以通过通知栏消息定制化跳转页面;通过H5页面跳转等