我试图在设备启动时启动服务,但是该服务从未启动。
我添加了:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
到AndroidManifest.xml。我的BroadcastReceiver看起来像这样:
[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionBootCompleted })]
public class BootReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
var start = new Intent(context, typeof(AlertSyncService));
start.AddFlags(ActivityFlags.NewTask);
context.StartService(start);
}
}
我已确认我的服务不是问题(通过在单击按钮时启动相同的服务进行了测试-正常)。问题绝对是BroadcastReceiver从未接收到该事件。我还确保在重新启动之前打开应用程序一次-在类似的问题中,我认为这是必要的,因为应用程序以“停止状态”安装。
有人有什么想法可能导致此方法不起作用吗?我对此还比较陌生,因此很可能错过了一些显而易见的事情!
谢谢
答案 0 :(得分:0)
您可以尝试以下方法:
[BroadcastReceiver(Enabled = true, Exported = true, DirectBootAware = true)]
[IntentFilter(new string[] {
Intent.ActionBootCompleted, Intent.ActionLockedBootCompleted, "android.intent.action.QUICKBOOT_POWERON"
})]
public class BootReceiver: BroadcastReceiver {
public override void OnReceive(Context context, Intent intent) {
//Do something
}
}