Android系统在开机启动时都会发送一条广播,所以我们首先就是要捕获这条广播。但要想捕获的话,我们就必须要有接受机制。在Android中,BroadcastReceiver 是对发送出来的BroadCast 进行过滤接受并相应的一组件,而BroadCast 是广泛应用在应用程序间传输信息的一种机制。
OlympicsReceiver.java 文件,继承了 BroadcastReceiver。
public class OlympicsReceiver extends BroadcastReceiver {
/* 要接收的intent源 */
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION)) {
boolean isMessagePush = false;//不开启就设置为false;
if(isMessagePush){
context.startService(new Intent(context, MessageService.class));
}
Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();
}
}
}
当然了有了这些还不行,关键还要在 AndroidManifest.xml 文件中添加权限。
<receiver android:name=".system.OlympicsReceiver" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
温馨提示:其中<receiver></receiver>是放在<application> </application> 标签里面的,但不是<activity> </activity>里面 ,权限就不用说了吧,当然是</application> 外面,</manifest>里面啦。。。完成之后就大功告成了,关掉模拟器重启试试。。。