说明:由于知识点写得过于碎片化,仅供作者本人观看,起回忆作用
使用方式一:
Intent intent=new Intent(Activity.this,secondActivity.this);
startActyvity(intent);
使用方式二:
startActivityForResult(intent,0);
并要要在当前Activity重写onActivityResult()方法:
@Override
public void onActivityResult(int requstCode,int resultCode,Intent intent){
if(requstCode==resultCode==0){
Bundle data=intent.getExtras();
String values=data.getString("key");
}
}
在第二个Activity上:
Intent intent=getIntent();
intent.putExtras("key","values");
SecondActivity.this.setResult(0,intent);
使用方式一:
startService(intent);
使用方式二:
bindService(intent,conn,Context.BIND_AUTO_CREATE);
注意:继承Service时必须重写onbind()方法,并返回IBnder
普通广播:
定义广播接收器:
public class receiver extends BroadcastReceiver{
@Override
public void onReceiver(Context context,Intent intent){
}
}
(动态和静态注册方式,根据实际任选一种)
动态注册广播:
regasterBroadcast(receiver,new IntentFilter(ACTION));
静态注册广播:
<receiver android:name=".receiver">
<Intent-Filter>
<action android:name="ACTION"/>
Intent-Filter>
receiver>
发送广播:
sendBroadcast(new Intent(ACTION));
如果是动态广播需要在最后注意在Activity或Fragment的onDestory()方法中注销广播
unregisterReceiver(receiver);
有序广播:
定义广播接收器:同上;
静态注册有序广播:(priority的值越大,优先级越高)
<receiver android:name=".receiver">
<Intent-Filter android:priority="100">
<action android:name="ORDER_ACTION"/>
Intent-Filter>
receiver>
发送有序广播:
sendOrderBroadcast(new Intent(ORDAER_ACTION),null);
若要中断该广播传递给低优先级的接收器处理,使用:
abortBroadcast();
本地广播:(仅限应用内传播)
其中X表示LocalBroadcastManager.getInstance(context)
注册receiver:
X.registerReceiver(receiver,new IntentFilter(LOCAL_ACTION));
注销广播:
X.unregisterReceiver(receiver);
发送异步广播:
X.sendBroadcast(new Intent(LOCAL_ACTION));
发送同步广播:
X.sendBroadcastSync(new Intent(LOCAL_ACTION));
原理解析:ContentProvider实际上是对SQLiteOpenHelper的二次封装,通过UriMatcher将数据库中的表语Uri建立关联,用户通过Uri操作时,ContentProvider根据Uri对数据库的表进行增删改查。
由于ContenProvider篇幅过长,请查看ContentProvider详解。