代码与范例:
启动活动的情况
public class StartupReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent activityIntent = new Intent(context, StartupActivity.class);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activityIntent);
}
}
启动服务的情况
public class StartupReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context, StartupService.class);
context.startService(serviceIntent);
}
}
Manifest文件
……
<uses-permission android:name=”android.permission.RECEIVE_BOOT_COMPLETED” >
</uses-permission>
……
<application >
……
<receiver android:name=”.StartupReceiver” >
<intent-filter>
<action android:name=”android.intent.action.BOOT_COMPLETED” />
</intent-filter>
</receiver>
</application>
……
说明:通过 Intent 和 BroadcastReceiver 来实现系统启动后自动执行程序。需要在Manifest中注册该 BroadcastReceiver 并声明相应的权限。StartupReceiver 应当作为单独的类存在,而不能被包含在,例如,一个 Activity 类内部。这种情况下将无法接受到广播。更多的意图请参见官方文档。