activity:
activity创建
继承Android的activity类——重写方法——设置显示布局——在Androidmanifest文件中注册activity。
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
AndroidManifest.xml
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> //设置为应用程序的主入口
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
activity的生命周期
activity从创建到销毁
1:onCreate(); //创建
2:onStart(); //运行
3:onResume(); //获取焦点
4:onPause(); //失去焦点
5:onStop(); //暂停
6:onDestroy(); //销毁
activity从创建到返回主界面,然后再运行
1:onCreate(); //创建
2:onStart(); //运行
3:onResume(); //获取焦点
4:onPause(); //失去焦点
5:onStop(); //暂停
6:onRestart();
7:onStart(); //运行
8:onResume(); //获取焦点

activity 的四种状态:活动状态,暂停状态,停止状态,非活动状态。
活动状态(active/running):activity处于界面最顶端,获取焦点。
停止状态(paused):activity失去焦点,但对用户可见。
停止状态(stopped):activity被完全遮挡或者部分遮挡,但保留成员的所有状态额成员信息。
非活动状态(killed):activity被停止。
service:
优先级高于activity
类型:本地服务(local service)
一般用于应用程序内部
startService stopService stopSelf stopSelfResult
bindService unbindService
远程服务(remote service)
Android系统内部应用程序之间
定义IBinder接口
Start方式特点:
服务跟启动源没有任何联系。
无法得到服务对象。
Bind方式特点:
通过Ibinder接口实例,返回一个ServiceConnection对象给启动源
通过ServiceConnection对象的相关方法得到Service方法。

注册服务:
<service android:name="com.example.service.StartService" ></service>
<service android:name="com.example.service.BindService" ></service>
StartService:
Intent intent=new Intent(MainActivity. this,StartService.class);
startService(intent); //startservice
stopService(intent); //stopservice
StartService.class
/**
* 只会调用一次
*/
@Override
public void onCreate() {
super.onCreate();
}
/**
* 每次启动都会调用
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super .onStartCommand(intent, flags, startId);
}
/**
* 停止服务
*/
@Override
public void onDestroy() {
super.onDestroy();
}
BindService:
Intent intent=new Intent(MainActivity. this,BindService.class);
//Service.BIND_AUTO_CREATE 服务自动创建
bindService(intent, null,Service.BIND_AUTO_CREATE );
unbindService( null);
}
broadcastReceiver:
是对发送出来的广播进行过滤接收并响应的一类组件,它就是用来接收来自系统和应用中的广播。
使用方法:
发送:
把信息装入一个intent对象
通过调用相应的方法将Intent对象以广播方式发送出去。
接收:
当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFiter是否与发送的Intent想匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。
注意:BroadcastReceiver需要注册
静态注册
<receiver android:name="com.example.contentprovider.bc1">
<intent-filter android:priority= "100" > //优先级
<action android:name="bcone" />
</intent-filter>
</receiver>
动态注册
//动态注册(程序运行才有用)
IntentFilter intentFilter= new IntentFilter();
bc1 bc1= new bc1();
registerReceiver(bc1, intentFilter);
/**
* 动态注册之后 要销毁
*/
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver( receivername);
}
BroadcastReceiver的声明周期只有十秒左右,在BroadcastReceiver里不能做一些比较耗时的操作。
广播种类:
普通广播(Normal broadcasts)
所有监听该广播的广播接受者都可以监听到该广播
同级别接收没有先后顺序(随机)
级别低的后收到广播
接收器不能截断广播的继续传播也不能处理广播
同级别动态注册高于静态注册
发送:
sendBroadcast();
Intent intent=new Intent();
intent.putExtra( "bc", "abc" );
intent.setAction( "com.example.contentprovider.MainActivity" );
sendBroadcast(intent);
sendOrderBroadcast();
sendStickyBroadcast();
接收:
public class bc1 extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
arg1. getStringExtra("bc");
abortBroadcast(); //截断广播(普通广播不能截断)
}
}
有序广播(Ordered broadcasts)
按照接受者的优先级顺序接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大,优先级越高。可以终止广播意图的继续传播。接受者可以更改内容。
同级别接收没有先后顺序(随机)
能截断广播的继续传播,高级别的广播接收器收到该广播后,可以决定把该广播是否截断。
接收器能截断广播的继续传播,也能处理广播。
同级别动态注册高于静态注册
发送:
Bundle bundle=new Bundle();
bundle.putString( "text", "bc" );
setResultExtras(bundle);
接收:
Bundle bundle=getResultExtras(true);
异步广播(粘滞性滞留广播)
不能将处理结果传给下一个接受者,无法终止广播。
//异步广播 先发送后注册
Intent intent= new Intent();
intent.putExtra( "key", "value" );
intent.setAction( "actionname");
sendStickyBroadcast(intent);
IntentFilter intentFilter= new IntentFilter("actionname" );
bc1 bc1= new bc1();
registerReceiver(bc1, intentFilter);
contentProvider: