我目前正在尝试设计一个特定的应用程序,但我真的不知道如何。该应用程序必须像这样运行。
我必须做的:
用户启动应用程序。这个动作启动了一些独立于 UI 的东西(当前是一个服务),它必须请求远程服务器来获取测试场景、执行测试并将结果发送到同一服务器,即使应用程序的 UI 不在屏幕上。
第二个约束:用户在开始时选择来自服务器的两个场景请求之间的时间。
示例:用户启动应用程序,选择“每 5 分钟执行一次测试场景请求”,之后,他可以在手机上做任何他想做的事情。并且app每5分钟发送一个请求来获取测试场景(不是一个,而是一个不同的数字,例如50),做测试场景,并将结果发送到服务器;然后,等待下一个请求。
在此期间,我认为状态栏中的通知图标可能是访问应用程序 UI 的好方法。这样,当用户觉得应用程序已经完成了足够的测试时,他可以访问 UI 并停止应用程序。
我已经做了什么:
我创建了一个创建服务的活动。我还设置了一个警报AlarmManager
,收到一个警报,该警报AlarmReceiver
每 X 分钟/秒/...调用一次服务,并在服务中启动对服务器的请求以获取场景(http 请求在 AsyncTask 中完成)。该服务在其onCreate()
方法的状态栏中放置一个通知。我还设法解析 JSON、发送 HttpRequest 以及类似的技术性内容。
我的问题是:
我发现服务在onStartCommand()
. 它完成了方法然后转到onDestroy()
(我没有放的地方stopSelf()
),但是服务真的关闭了吗?如果是的话,我怎么能在整个申请期间设法让它“启动”?
状态栏的通知刚出现又消失,伴随着AlarmManager
. 我怎样才能“稳定”它?
如果你已经设计了一个这样的应用程序(我认为一个邮件应用程序就是一个很好的例子,它每 X 分钟请求邮件服务器检查新邮件并发送通知),我怎样才能达到我的目标?重用邮件应用程序示例:检查服务器上新邮件的服务是否一直在运行?
我真的不知道如何设计这个应用之王,所以欢迎任何帮助。对不起,我的英语不好。如果您想要精度、服务代码、活动,请询问。
问候