繁体   English   中英

Android-立即启动警报服务?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM