之前在做着一个项目的时候,碰到了一个如何开机自启动的问题。我查网上的资料显示可以通过接受开机广播的方式,用广播触发启动Activity或Service。但网上很多都说在android4.0之后就接受不到广播,我自己也敲了代码发现不行。自己折腾了一段时间,发现其实是自己没有在清单文件中加使用者权限=。=
亲测4.4版本的能行得通~~
1.在AndroidManifest.xml中加权限。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2.注册广播。
<receiver
android:name="com.weixiaokang.rescueteam.broadcast.SetupReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
public class SetupReceiver extends BroadcastReceiver {
private static final String action = "android.intent.action.BOOT_COMPLETED";
public SetupReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
String mAction = intent.getAction();
if (mAction.equals(action)) {
Intent newIntent1 = new Intent(context, SetupService.class);
newIntent1.setAction("start");
context.startService(newIntent1);
}
}
}
启动Activity是同样可行的,这里不再赘述。。