您的位置:首页 > 移动开发 > Android开发

Android中的静态系统广播和动态系统广播

2015-06-17 21:49 489 查看
Android4.4:

静态广播:

可在AndroidManifest.xml中定义,不需程序启动即可接收,可用作自动启动程序

Intent.ACTION_BOOT_COMPLETED //系统启动完成

Intent.ACTION_MEDIA_MOUNTED //SD卡挂载

Intent.ACTION_MEDIA_UNMOUNTED //SD卡卸载

Intent.ACTION_USER_PRESENT//解除锁屏

ConnectivityManager.CONNECTIVITY_ACTION//网络状态变化

[html] view
plaincopy





<receiver android:name=".StaticBroadcastReceiver">

<intent-filter>

<action android:name="android.intent.action.BOOT_COMPLETED" />

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

</intent-filter>

<intent-filter>

<action android:name="android.intent.action.MEDIA_MOUNTED"/>

<action android:name="android.intent.action.MEDIA_UNMOUNTED"/>

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

<data android:scheme="file" />

</intent-filter>

<intent-filter>

<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

<action android:name="android.intent.action.USER_PRESENT" />

</intent-filter>

</receiver>

[java] view
plaincopy





public class StaticBroadcastReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){

Log.d(TAG, "onReceive boot: ");

Intent new_intent = new Intent(context,TestLauncher.class);

//popup the activity

new_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(new_intent);

}else if(intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {

Log.d(TAG, "onReceive ACTION_USER_PRESENT: ");

}

}

}

动态广播:
只能在代码中注册,程序适应系统变化做操作,程序运行状态才能接收到

Intent.ACTION_SCREEN_ON //屏幕亮

Intent.ACTION_SCREEN_OFF //屏幕灭

Intent.ACTION_TIME_TICK //时间变化 每分钟一次

[java] view
plaincopy



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: