安卓服务 : life cycle considerations

标签 android service lifecycle

我正在制作一个 Android 应用程序,它将包含两项服务,每 24 小时持续发送一次有关用户手机使用情况的数据。

用户应该执行该应用程序,切换按钮以启用手机使用记录,然后用户应该能够使用他的手机进行正常生活,直到他再次启动该应用程序并禁用切换按钮停止记录信息。

  • 关于服务的生命周期,我应该考虑哪些因素?
  • 当服务应该发送数据时,用户与手机的交互如何?

非常感谢所有信息,因为这一切让我有点不知所措!

非常感谢大家!

最佳答案

可以通过设置菜单随时切断服务。如果 Android 决定它需要当前正在运行的 Activity 的资源,它也可以随时被 Android 杀死。 onDestroy() 无论如何都会被调用,所以用它来存储任何需要的东西。

该服务在后台运行,但通过主 UI 线程运行。因此,可以通过服务来阻止电话的操作。当它真的是一项试图做某事的服务时,看起来电话被锁定了。任何阻塞过程都应该在线程中使用,例如 Java 定时器、Java 线程或 AsyncTask。

在任何给定时间只能有一个运行版本的服务。但是,如果“myService”已经在运行,则调用 startService(myService) 将实质上覆盖当前正在运行的服务,并且将再次调用 onStartCommand()。但是,无论 startService(myService) 被调用多少次,都需要调用一次 stopService(myService) 来停止它。

stopService(myService) 如果服务绑定(bind)到任何东西,则不会停止该服务。它将等到所有绑定(bind)都被删除后才会停止服务。

关于安卓服务 : life cycle considerations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6926415/

相关文章:

service - Centos 7 - 来自/etc/systemd/system/san.service 的服务未使用 systemctl start san.service 运行

angular - 如何在Angular2中的多个组件之间共享服务

json - 如何将 JSON 数据加载到 Angular2 组件中

android - 不赞成使用ViewModelProviders.of()时,如何在 Activity 和服务之间共享相同的ViewModel?

java - Android Studio 和 openimaj

android - 选项卡小部件分隔线的顶部和底部样式

android - 如何使用 Android 版本 4.4.2 ( KITKAT ) 检测文件夹是否可写

Android Activity 生命周期和 JNI native 代码生命周期

android - Activity 生命周期示例

安卓开发: app crashes after calling another activity