Android 的四大组件
四大组件包括:Activity,Service,ContentProvider,BroadcastReceiver
1.什么是Activity?
Activity是Android与用户进行交互的接口,它提供了一个界面,让用户进行点击、滑动等操作。
2.Activity的4种状态?
running、paused、stopped、killed
running:activity处于活跃状态,此时可以与用户交互,处于activity的栈顶
paused:Activity处于失去焦点的状态,或者被非全屏的Activity占据,或者被非透明状态处于栈顶。失去焦点的Activity所有的成员变量都还在,没有被销毁,只是暂时不能与用户进行交互。内存紧张时,该Activity会被销毁。
stopped:Activity处于完全不可见状态,处在栈内,其他activity处在栈的顶端,栈内的activity就处于stopped状态,它将不再是可见的,内存不紧张时,其成员变量就还在。
killed:Activity被系统回收,所保存的信息和成员变量全都被销毁。
3.Activity的生命周期是什么?
onCreate->onStart->onResume->onPuase->onStop->onDestory
前台到后台
onPause->onStop
后台重新到前台
onStop->onRestart->onStart
后台到前台(Activity被销毁)
onStop-onRestart->onCraete->..->..->
退出activity
onPause-onStop->onDestory
4.Activity的启动模式
standard、singleTop、singleTask、singleInstance
standard:每次启动Activity都会在任务栈中创建一个新的实例
singleTop:当新创建的activity与栈顶的activity相同时会复用栈顶的activity,不会创建新的activity。但是当相同的activity不在任务栈顶部,则会创建相同的activity
singleTask:创建新的activity会检测任务栈中是否有相同的activity,如果存在的话,会把activity直接移到栈顶,而activity上的其他activity出栈
singleInstance:每创建一个activity自己独享一个任务栈
5.Scheme协议
Scheme协议在Android中使用场景
H5跳转到native页面
在Mainefest配置文件中配置需要用scheme协议跳转的Activity
<activity
android:name=".SchemeActivity"
android:label="@string/app_name">
<!-- 要想在别的App上能成功调起App,必须添加intent过滤器 -->
<!-- 协议部分,随便设置 -->
<intent-filter>
<!--协议部分,随便设置-->
<data android:scheme="scheme" android:host="mtime" android:path="/goodsDetail" />
<!--下面这几行也必须得设置-->
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>