0

我想在我的应用程序中执行以下操作。即使用户按下主页键,我的应用程序仍将继续发送数据(无限期地直到应用程序被终止)。在伪代码中,我想要这样的东西:

even_if_i_have_pressed_home_button {
    for (;;) sendData();
}

你能帮我用什么吗?我已阅读有关服务、线程或可运行文件的信息。你能给我一些建议并给我示例代码吗?

4

2 回答 2

1

您将创建一个服务,该服务将创建一个持续运行的线程。服务实现是一个很大的话题,不能在这里讨论。首先阅读 android服务文档页面。这里有一些事情要记住,

  1. 如果您要创建一个在应用程序用户界面停止后运行并继续执行工作的线程,请确保添加通知以便用户理解这一点,并为他们提供真正停止服务的方法。例如,单击通知会将它们带回应用程序的用户界面,并带有“退出”的方式。

  2. 如果需要内存,android 将销毁您的服务。您无法创建绝对会继续运行的服务。您应该在应用程序设计中考虑这一点。

  3. 确保你真的需要这样做。持续的网络活动将对用户的电池寿命产生严重影响。考虑让手机进入睡眠状态并定期唤醒以使用警报管理器执行工作。

于 2012-07-05T17:04:22.433 回答
0

您应该为此使用服务,服务仅在“紧急”情况下被 Android 杀死,因此当您的应用程序的活动关闭时,它很可能会保持活动状态。一定要关闭你的服务,你可以使用服务的 onDestroy 方法。

于 2012-07-05T17:07:42.923 回答