Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓服务在安卓2.3.3中退出_Android_Service - Fatal编程技术网

Android 安卓服务在安卓2.3.3中退出

Android 安卓服务在安卓2.3.3中退出,android,service,Android,Service,我有Android服务,每9分钟运行一次并发送一次电子邮件,但经过一段时间后,它就退出了。这个应用程序也安装在我的Android froyo中,但它现在可以正常工作超过2个月。。我可以在logcat中看到服务退出的日志,但我的问题是我无法理解这意味着什么。。有人能帮我吗?谢谢任何帮助都将不胜感激 以下是我的源代码: Logcat日志: 使用AlarmManager的要点是,您的服务只需要在执行实际工作时存储在内存中,并且可以在AlarmManager事件之间消失。您已经设法做到了这一点,因此您

我有Android服务,每9分钟运行一次并发送一次电子邮件,但经过一段时间后,它就退出了。这个应用程序也安装在我的Android froyo中,但它现在可以正常工作超过2个月。。我可以在logcat中看到服务退出的日志,但我的问题是我无法理解这意味着什么。。有人能帮我吗?谢谢任何帮助都将不胜感激

以下是我的源代码:

Logcat日志:


使用
AlarmManager
的要点是,您的服务只需要在执行实际工作时存储在内存中,并且可以在
AlarmManager
事件之间消失。您已经设法做到了这一点,因此您的代码将无法可靠地工作

如果你想“每9分钟发送一次电子邮件”,你应该:

  • BroadcastReceiver
    移动为公共Java类,通过
    元素在清单中注册,并删除
    registerReceiver()
    /
    unregisterReceiver()
    内容

  • 将您的服务切换为
    IntentService
    ,这样您就可以获得一个后台线程(您的工作需要这个线程,但您当前的代码没有),这样当没有更多的工作要做时,服务就可以自动关闭

  • 添加
    唤醒
    型警报所需的
    唤醒锁的逻辑。如果愿意,您可以通过切换到将此步骤与前面的步骤结合起来

  • 如果您希望警报在重新启动后继续,例如通过
    操作\u BOOT\u COMPLETED
    广播接收器重新安排警报,请处理用户重新启动设备的情况


  • 嗨,Yoel,对不起,我忘了告诉你这个日志是我的AVD管理器发来的,因为我现在手里没有手机,所以我用相同的android版本在AVD管理器中模拟了这个应用程序。而该文件是另一个服务所需要的,与所讨论的服务无关。我看到以下错误11-04 14:34:42.956:I/ActivityManager(61):强制停止包romel.pi.redphone uid=10034 11-04 14:34:42.966:W/ActivityManager(61):在5000msHi Commonware中计划重新启动崩溃的服务romel.pi.redphone/.BackgroundServices,这是我每9分钟调用一次定期任务的新方法。。我创建了一个启动接收器以在启动期间启动我的alarm manager-这是我如何设置AlarmManager以每9分钟重新出现并将状态广播到我的alarm receiver类-这是我的alarm receiver类-我的alarm receiver然后每9分钟呼叫一个服务发送电子邮件和其他任务-问题:我不确定我是否正确调用alarmManager。。我在想,我是否可以在不使用服务的情况下调用startAlarmManager()方法,或者我可以在系统启动期间使用启动接收器调用普通类..上面的代码现在运行良好,我仍在观察它是否会很快退出(我希望不会)…;)