2012-10-19 35 views
3

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

+0

不。只是不。不要强迫你的应用程序打开,这是欺骗用户和评论不好的最佳方式。 (除非你有一个很好的理由,我很好奇) – njzk2

+0

即时编写安装在孩子手机上的“家长控制”应用程序。我想阻止他强行杀死应用程序,除非它被父母关闭。 –

+0

每分钟给一个1分钟的时间框架做没有应用程序知道的东西... – njzk2

回答

0

使用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一样工作。

+0

我在这里阅读:[链接](http://stackoverflow.com/questions/9101818/how-to-create-a-persistent -alarmmanager) 它不能完成。 你的建议和他们在做什么有什么不同? 谢谢! –

+0

AlarmManager未被杀死。我为我的应用程序使用相同的代码 – Lucifer

+0

什么是ConstantCodes.ALARM_SERVICE?你的意思是Activity.ALARM_SERVICE? –

2

另外,我还希望这个服务为每分钟运行,如果我的申请被武力任务管理器

这是不可能的,因为安卓3.1的杀害。如果用户进入设置并强制=停止您的应用程序,则应用程序的任何内容都不会再次运行,直到用户手动启动您的某个组件。

如果你的进程被终止其他原因(例如,普通从Play商店任务的杀手级应用,刷你的任务从近期任务列表后),你的计划与AlarmManager报警应维持不变,每路西法的建议。

即时编写安装在孩子手机上的“家长控制”应用程序。

任何足够聪明的孩子使用手机将足够聪明,以安全模式重新启动他们的设备,摆脱你的应用程序。

+0

你在说什么,如果我进入内置的任务管理器并按下“Kill”(就像在冰淇淋sandwitch中)它仍然会每分钟运行,但如果他进入设置和强制停止的应用程序不会运行每分钟,我理解你的正确吗? 谢谢! –

+0

@ErelHansav:“如果他进入设置和强制停止的应用程序它不会运行每分钟” - 正确。 Android中没有内置任务管理器,除了最近任务列表(最后一次检查)没有在任何地方显示单词“kill”。 – CommonsWare

+0

在我的冰淇淋三明治机器人中,长时间按HOME按钮,它显示我最近的应用程序,并在底部显示“任务管理器”按钮。当我点击它,我进入任务管理器,在那里我可以看到我的打开的应用程序,内存,内存.... 那里我可以按“杀”按钮。 多数民众赞成在我的意思是... 谢谢! –