我正在尝试编写一个位于等待SMS消息的服务(使用服务器注册的BroadcastReceiver),并根据SMS消息的详细信息采取一些操作。我为服务使用Activity来startService()和stopService()。关闭Activity之后,服务继续坐在那里,其状态保持并且其BroadcastReceiver等待,因为它应该......但是,我发现随着时间的推移,随机,服务将自动重启。也就是说,即使服务已经启动,也会调用onCreate()和onStartCommand()。有时当我的手机在一夜之间闲置时会发生这种情况......
任何人都可以提供有关其原因(电话请求资源并杀死服务吗?)的洞察力,我可以做些什么来阻止它,或者我可以采取哪些措施来防止服务状态丢失?
提前致谢。
答案 0 :(得分:0)
我认为你根本不需要从活动开始服务。有一个广播接收器,可以收听您的短信并启动该服务。工作完成后,服务应调用stopSelf();
答案 1 :(得分:0)
答案 2 :(得分:0)
Android有时(当资源不足时,mem / cpu)会删除正在运行的服务,一旦资源很高,就会再次将它们带回来。这就是为什么您看到您的服务在夜间重启了几次。