[英]Android - start alarm service immediately?
我创建了一个On Boot Receiver,每隔5分钟重复调用一次唤醒意向服务,但无法弄清楚在安装应用程序后如何立即启动该服务。 我不想依靠用户在设备开始运行之前重新启动设备!
到目前为止,这是我的代码:
public class OnBootReceiver extends BroadcastReceiver {
private static final int PERIOD = 300000; // check every 5 minutes
@Override
public void onReceive(Context context, Intent intent) {
AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, OnAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 60000, PERIOD, pi);
}}
有人可以帮我吗? :)
如果您想设置一个警报管理器以在安装该应用程序时启动您的服务,那么这是不可能的。 这是操作系统的限制,如果可以的话,它是安全的。 但是,如果您想在应用启动时立即启动该服务,只需调用它,它将继续运行。
本质上,由于在启动应用程序时以及接收到BOOT_COMPLETED Intent时创建了Application对象,因此可以在自定义Application类的onCreate方法中向AlarmManager注册。 请注意,每次流程启动时都会实例化Application对象,其中包括临时终止该流程以节省资源的情况。 但是,如果您不以任何方式更改PendingIntent,则一次又一次注册应该没有问题。
但是,无法在安装后启动该应用程序,必须首先进行一些用户交互。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.