有序 无序 标准 异步
第七章 广播
广播(Broadcast)是一种运用在应用程序之间传递消息的机制。
广播接收者(BroadcastReceiver)是用来过滤、接收并响应广播的一类组件。
广播接收者可以监听系统中的广播消息,在不同组件之间进行通信。
1.发送广播
//8.0以前版本 //动作:广播地址,ip 包名 应用名称 Intent intent=new Intent(“com.imau.broadcast”); //参数:inten 权限 sendBroadcast(intent);
/8.0之后版本 Intent intent=new Intent(“com.example.mymessage”); //设置广播接收着具体信息; intent.setPackage(“com.imau.broadcastdemo2”); //参数:广播接收者报名com.imau.broadcastdemo;广播接收者具体类全路径 com.imau.broadcastdemo.MyBroadcastReceiver //intent.setComponent(new ComponentName(getPackageName(),getPackageName()+".MyReceiver")); sendBroadcast(intent,null); //广播注册
2.广播接受者
1.自定义一个类继承BroadcastReceiver;重写onReceive方法
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //Toast.makeText(context, “received in MyBroadcastReceiver”, Toast.LENGTH_SHORT).show(); System.out.println(“接收到了广播…”+intent.getAction()); } }
2.注册广播接收者
静态注册:配置文件中;
第8章 服务
服务的创建
服务(Service)是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。即使用户切到另一应用程序,服务仍可以在后台运行。
理论概述
Service是什么?
1.Service是一个应用组件, 它用来在后台完成一个时间跨度比较大的工作且没有关联任何界面
2.一个Service可以完成下面这些工作:
访问网络
播放音乐
文件IO操作
大数据量的数据库操作
3. 服务的特点:
Service在后台运行,不用与用户进行交互
即使程序被切换到后台,或者用户打开新的应用,服务仍可运行
服务并非运行在独立的进程中,而是依赖于创建服务的应用程序进程。如果某个应用进程被杀掉,该服务也会停止
在默认情况下,Service运行在应用程序进程的主线程(UI线程)中,如果需要在Service中处理一些网络连接等耗时的操作,那么应该将这些任务放在Service的分线程中处理,避免阻塞用户界面。
区别Service与Activity?
-
Activity:
Activity对应一个界面
应用退出, Activity对象就会死亡
应用再次进入, 启动的Activity对象是重新创建的 -
Service
不与任何界面关联,绝不会到前台来
应用退出, Service仍在运行
应用再次进入, 启动的Service还是前面运行的Service对象 -
Activity 与 Service 的选择标准:
如果某个应用程序组件需要运行时向用户呈现某种界面,或者该程序需要与用户交互,就需要使用Activity,否则就应该考虑使用Service。
服务的创建
服务的创建方式与创建Activity类似,只需要继承Service类,然后在清单文件中注册即可。
1、创建服务
public class MyService extends Service {
public IBinder onBind(Intent arg0) {
return null;
}
}
2、在清单文件中配置
<application
………… >
<service android:name="cn.itcast.servicetest.MyService"/>
</application>
第8章 服务
//1.创建一个本地广播管理器 LocalBroadcastManager broadcastManager=LocalBroadcastManager.getInstance(MainActivity.this); //2.构建广播动作 IntentFilter intentFilter=new IntentFilter(“com.example.mymessage”); //3.注册广播接收和动作 broadcastManager.registerReceiver(receiver,intentFilter); //4.发送广播 Intent intent=new Intent(“com.example.mymessage”); broadcastManager.sendBroadcast(intent);
服务(Service)是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。即使
用户切到另一应用程序,服务仍可以在后台运行。
1.服务的特点:
•Service在后台运行,不用与用户进行交互
•即使程序被切换到后台,或者用户打开新的应用,服务仍可运行
•服务并非运行在独立的进程中,而是依赖于创建服务的应用程序进程。如果某个应用进程被杀掉,该
服务也会停止
•在默认情况下,Service运行在应用程序进程的主线程(UI线程)中,如果需要在Service中处理一些
网络连接等耗时的操作,那么应该将这些任务放在Service的分线程中处理,避免阻塞用户界面
2.创建服务
2.1 普通模式:自定义类继承Service;AndroidManifest.xml中注册服务
intent=new Intent(MainActivity.this,MyService.class); startService(intent); Log.i(“service=”,“服务启动成功”);