3

我需要在我的应用程序中首次启动并永远运行的服务,即使用户重新启动他的手机,我的服务也会自动启动而不运行我的应用程序。我写了这段代码,但是当用户重新启动他的手机时,我的服务不会再次启动!!

public class notifService extends Service {
    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStart(intent, startId);
        return Service.START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}

在主要活动中我开始这样的服务:

// start service
Intent service = new Intent(MainActivity.this, notifService.class);
MainActivity.this.startService(service);

谢谢你的帮助。

4

1 回答 1

4

android.intent.action.BOOT_COMPLETED在 BroadcastReceiver 中侦听并启动您的服务。

例如

public class YourDefinedBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent service = new Intent(context, notifService.class);
    context.startService(service);
    }
}

此外,您必须持有以下许可:

参考:开机后自动在 Android 中启动服务和Android 在开机时自动启动服务

于 2013-05-20T06:58:01.820 回答