1.Activity
是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()
方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。
2.Activity的生命周期
onCreate:Activity创建生成的时候执行
onStart:Activity正在被启动,可见,但是还未出现在前台,无法交互
onReStart:重启Activity从不可见变为可见就会执行
onResume:Activity启动或者重启
onPause:Activity正在停止。
onStop:Activity停止,在onPause之后调用
onDrstory:Activity销毁
3.Activity的四种启动模式
standard:默认的启动模式,默认创建新的实例叠加,可以存储多个实例,是先进后出的原则
singleTop:可以有多个实例,但是不允许叠加,启动相同的Activity不会再创建,而是调用onNewIntent方法
singleTask:只有一个实例,若要调用Activity,如果这个activity还没有被创建,就创建一个。如果已经创建了,就把这个activity以上的所有Activity oDestory掉,并调动此activity的onNewIntent方法
singleInstance:只有一个实例,且独立运行在一个Task中,此Task只有这个实例。
4.Service
服务非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。与某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行
5.开启started的两种方式
started(组件调用startService启动服务,服务处于started状态)和bound(组件调用bindService绑定服务,服务处于bound状态)
started开启的服务需要手动调用stopself停止服务,获取其他组件调用stopService。
bind绑定服务会随着组件的销毁而停止
6.广播接受者 Broadcast Receive
是一种应用程序之间传输信息的机制。广播接收器接受广播并处理对应的数据
//发送广播
Intent intent = new Intent("android.user.CHANGE_RED");
LocalBroadcastManager.getInstance(App.getCurrentView()).sendBroadcast(intent);
//广播接受者
HeadReceiver headReceiver = new HeadReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.user.CHANGE_RED");
LocalBroadcastManager.getInstance(App.getCurrentView()).registerReceiver(headReceiver, filter);
//自定义本地广播
public class HeadReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
doSomething();
}
}
//
7.Content Provider(接收到ContentResolver时被激活)
Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。只有需要在多个应用程序间共享数据是才需要内容提供者。ContentProvider实现数据共享。ContentProvider用于保存和获取数据,