1.StartService 和BindService 结合使用

.先StartService 启动服务,再BindService 绑定服务

2.StartService 启动服务只能通过StopService关闭,这个时候bindService,不会创建新的的服务。只会调用onBind()

3.关闭界面,Service不会关闭,只后解绑。

 不会调用ondestory()方法,只会调用onUnbind(),

再次进入界面,先StartService ,BindService。不会创建新的服务。

(不会调用onCreate()),只会调用onstartcommand()

及onBind()

onstart()

onstop()解绑


广播  四大组件之一  BroadcastReceiver

广播机制:传递信息    单向  群发


创建BroadcastReceiver

1.创建一个类继承BroadcastReceiver 

MyReceiver extends BroadcastReceiver 

从写onReceive()

2.在清单文件中进行注册

     

android:name=".MyReceiver"(包.类名)

>

        

eg:发送短信     接收系统发送的广播   

实现:

清单文件中:

1.添加接收短信的权限

android.permission.RECEIVE_SMS"/>

2.设置广播接收者的过滤条件           

注册方式一:清单文件中进行注册

            android:name=".MyReceiver"

            android:enabled="true"

            android:exported="true" >

            //过滤器

            //过滤条件

                android.provider.Telephony.SMS_RECEIVED"/>

            

        

code:   

public void onReceive(Context context, Intent intent) {

        //接受到广播时调用

        Log.e("onReceive", "onReceive"+"接受到广播");

 }

过滤条件:

 频率(电台的频率(50HZ))


注意:

进程不存在 ,一样可以接收到广播



注册二:代码中注册   

1.在onstart()注册广播

        myReceiver = new MyReceiver();

        //添加过滤条件

        IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");

//filter.addAction("android.provider.Telephony.SMS_RECEIVED");

        registerReceiver(myReceiver, filter);

        super.onStart();


2.在onstop()注销广播

unregisterReceiver(myReceiver);


3.创建类继承BroadcastReceiver

重写onReceiver();

注意:

进程不存在  接收不到广播

灵活使用  



应用本身也可发送广播 ,应用本身可以接收自己发送的广播

Intent intent=new Intent("www.com.xinbo");//添加过滤条件

//传递信息

intent.putExtra("broadcast", "sssss");

//发送广播

sendBroadcast(intent);


添加自定义的过滤条件

IntentFilter filter = new IntentFilter("www.com.xinbo");   code

                   清单文件中


Intent

显示意图:指明跳转方向    只能跳转当前应用的Activity

隐式意图:

Activity

code:

跳转:

Intent intent = new Intent();

        intent.setAction("openActivity");

        startActivity(intent);


清单文件中为目标界面添加过滤条件

category :类别

 

openActivity"/>

<category android:name="android.intent.category.DEFAULT"/>


区别:

隐式意图可以打开符合过滤条件的Activity

也可以打开其他应用中符合过滤条件的Activity,打开多个,且有对话框选择目标界面

显示意图:只能打开当前应用的Activity  指明方向