如何每5分钟唤醒我的意向服务

时间:2015-05-22 07:07:08

标签: java android android-intent intentservice android-intentservice

我之前已经知道这个问题,但我没有得到任何答案,我想创建一个始终运行线程的意向服务,但是当我从应用程序退出时,我的服务被停止然后线程也停了。我需要创建一些东西来唤醒服务每隔几分钟。或者甚至在应用程序被杀或关闭时也可以防止终止服务。

这就是我开始服务的方式

Intent intent= new Intent(Intent.ACTION_SYNC,null,this,IntentServ.class);
startService(intent);

3 个答案:

答案 0 :(得分:6)

为此,您可以使用可以每1小时启动一次服务的AlarmManager。例如:

 AlarmManager mgr = (AlarmManager) context
                .getSystemService(Context.ALARM_SERVICE);
 Intent notificationIntent = new Intent(context,
                UpdateService.class);
 PendingIntent pendingIntent=PendingIntent.getService(context, requestCode, Intent.parseIntent(), 0);
  mgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
        System.currentTimeMillis(), AlarmManager.INTERVAL_HOUR, pendingIntent);

答案 1 :(得分:1)

将普通Serviceandroid.app.AlarmManager一起使用。

不需要使用WakefulBroadcastReceiver

答案 2 :(得分:1)

在这种情况下,您需要

AlarmManagerPendingIntent。 请遵循以下示例:

AlarmManager am = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);

/ * ---创建待定意图,在唤醒时执行--- * /

PendingIntent operation = getUpdatePolicyOperation();
am.set(AlarmManager.RTC, alarmTime, operation); // alarm time is millisecond time in milliseconds that the alarm should go off, using the appropriate clock (depending on the alarm type).

您可以在HereAlarmManager中了解有关闹钟模式的更多信息,或参加Here中的教程

希望它有所帮助。