1. Intent;
2. Binder(AIDL);
3. Message;
4. BroadcastReceiver.
Demo
1. Intent:
AndroidManifest.xml
activity_main.xml
activity_01.xml
activity_share.xmlintentdemo/src/main/java/com/xyy/intentdemo
MainActivity.javaActivity01.javaShareActivity.java======================================================
2.Binder:
service服务在后台运行
service注册: <serviceandroid:name="com.startservice.MyService"></service>
启动服务service 两种方式:
一 startservice
启动该服务的Activity挂了,服务不会挂,大难临头各自飞;不能拿到service的实例
Service:
//绑定时候的回调方法
@Override
publicIBinder onBind(Intentintent) {
returnnull;
}
//最后调用的方法
@Override
publicvoid onDestroy() {
super.onDestroy();
Log.d("TAG","StartService onDestroy");
}
//服务启动之后的回调
@Override
@DePRecated
publicvoid onStart(Intent intent,int startId) {
super.onStart(intent,startId);
Log.d("TAG","StartService onStart");
}
//最先调用的方法
@Override
publicvoid onCreate() {
super.onCreate();
Log.d("TAG","StartService onCreate");
}
//=========================
Activity.java:
Intent mIntent = new Intent();
mIntent.setClass(getapplicationContext(), MyService.class);
bindService(mIntent, mConnection, Context.BIND_AUTO_CREATE);
二绑定服务
可以拿到服务的实例,引用。启动该服务的Activity挂了,服务也会挂了。
1 IBinder -- 类似王婆
IBinder是远程对象的基本接口,
是为高性能而设计的轻量级远程调用机制的核心部分。
但它不仅用于远程调用,也用于进程内调用。
这个接口定义了与远程对象交互的协议。
不要直接实现这个接口,而应该从Binder派生。
2绑定服务
Service:
classMyBinder extends Binder{
//通过getStartService拿到本服务的引用
StartServicegetStartService(){
//把本服务传递出去了
returnStartService.this;
}
}
//绑定时候的回调方法
@Override
publicIBinder onBind(Intentintent) {
Log.d("TAG","StartService onBind");
//MyBinder--方法 getgetStartService 可以获取到本服务
//获取本服务实例的步骤
//1拿到MyBinder 2 调用 getStartService
returnnew MyBinder();
}
Activity:
ServiceConnection mConnection= newServiceConnection() {
//断开服务连接的回调方法
@Override
publicvoidonServiceDisconnected(ComponentName name) {
}
//服务连接的回调方法 --- 在此方法中,拿到服务的引用
@Override
publicvoidonServiceConnected(ComponentName name, IBinder service) {
//拿到王婆
MyBinderm =((MyBinder)service);
//通过王婆,拿到潘XX
mService=m.getStartService();
mService.playMusic("听");
}
}
Service :
//绑定
Intent mIntent = new Intent();
mIntent.setClass(getApplicationContext(),StartService.class);
//绑定的时候自动创建
bindService(mIntent,mConnection,Context.BIND_AUTO_CREATE);
//拿到服务的实例可以执行服务的方法
-------------------------------------------------------------------------------Client 端videoDemo
AndroidManifest.xmlres/layout
activity_main.xml
VideoService.java
MainActivity.java
==========================================
3. Message:
MainActivity.java
TCPThread
res/layout
activity_main.xml
TalkitemtalkTCPhandlerClient/res/drawable-hdpi
.9.patch pictalkTCPhandlerServer/src/com/demo
ServerThread
Demo.java
==========================================
4. BroadcastReceiver:
DemoNotificationBroadcastMusic
AndroidManifest.xml
Local music no need manifest
-----------------------------------------------------------------------
notificationlayout.xmlMainActivity.java新闻热点
疑难解答