后来发现是没有添加<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>的问题。
在3.1以前,android对自启动管理不是很严格,只要你的BroadcastReceiver的IntentFilter声明了<action android:name="android.intent.action.BOOT_COMPLETED" />
假如我们没有指定use-permission就无法收到开机广播。
如果你也碰到了这个问题,检查一下自己是不是忘记添加permission了吧^_^