android force kill计划服务每分钟

时间:2012-10-19 12:46:45

标签: android service kill

我想安排一项服务每分钟运行一次并检查我的应用程序是否仍在运行。 (如果应用程序关闭,我想重新打开它)。 此外,如果我的应用程序被任务管理器强行杀死,我仍然希望每分钟都运行此服务。 谢谢!

2 个答案:

答案 0 :(得分:2)

  

此外,如果我的应用程序被任务管理器

强行杀死,我仍然希望每分钟都能运行此服务

从Android 3.1开始,这是不可能的。如果用户进入“设置”并且强制=停止您的应用,则您的应用将不会再次运行,直到用户手动启动您的某个组件。

如果您的进程因其他原因而终止(例如,Play商店中的普通任务杀手应用程序,将您的任务从“近期任务”列表中移开),那么使用AlarmManager安排的警报应保持不变,根据Lucifer的说法建议。

  

我正在编写一个安装在儿童手机上的“家长控制”应用程序。

任何能够智能使用手机的孩子都非常聪明,可以在安全模式下重启设备并摆脱你的应用。

答案 1 :(得分:1)

使用AlarmManager类,即使您的设备处于睡眠模式,它也能正常工作。

private static Intent alarmIntent = null;
private static PendingIntent pendingIntent = null;
private static AlarmManager alarmManager = null;


// First Creating an Intent
alarmIntent = new Intent ( context, yourClass.class );
// Create an Pending Intent which will Broadcast the Intent
pendingIntent = PendingIntent.getBroadcast(context, 234324243, alarmIntent, 0 );
// Set the AlarmManager class
alarmManager = ( AlarmManager ) context.getSystemService( ConstantCodes.ALARM_SERVICE );
// Set Repeating time interval
alarmManager.setRepeating( AlarmManager.RTC_WAKEUP, Interval * 1000, Interval * 1000, pendingIntent );

AlarmManager比TimerTask或Thread消耗更少的电池电量。它就像无痛的AsyncTask一样。