我之前已经知道这个问题,但我没有得到任何答案,我想创建一个始终运行线程的意向服务,但是当我从应用程序退出时,我的服务被停止然后线程也停了。我需要创建一些东西来唤醒服务每隔几分钟。或者甚至在应用程序被杀或关闭时也可以防止终止服务。
这就是我开始服务的方式
Intent intent= new Intent(Intent.ACTION_SYNC,null,this,IntentServ.class);
startService(intent);
答案 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)
将普通Service
与android.app.AlarmManager
一起使用。
不需要使用WakefulBroadcastReceiver
。
答案 2 :(得分:1)
AlarmManager
和PendingIntent
。
请遵循以下示例:
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).
您可以在Here的AlarmManager
中了解有关闹钟模式的更多信息,或参加Here中的教程
希望它有所帮助。