重新启动的活动无法获取重启前启动的服务状态

时间:2012-11-15 00:53:20

标签: android

这是一种情况, 我有一个启动服务的android活动(该服务用于发送/接收文件等)。服务sendMessage()通过Activity类对象中创建的处理程序到Activity。 然后,Activity显示当前操作服务对其包含的视图执行的状态。

这是问题

  1. 活动开始
  2. 活动在全局对象中创建处理程序
  3. 活动启动服务 -
  4. 用户通过活动命令服务开始发送/接收文件的过程
  5. 该服务现在正忙,并且还通过通过全局对象获取的处理程序向UI发送消息
  6. Activity接收和handleMessage()并在UI上发布状态
  7. 用户现在将我的活动发送到后台(可能是他开始使用其他应用程序)
  8. 在此过程中,android可能会杀死我的Activity,但服务正忙/正在运行
  9. 同时服务完成
  10. 一段时间后,用户打开活动
  11. (问题)Activity启动onCreate被调用,活动不知道服务的最后状态。是否成功完成或失败或任何其他状态的最后状态..

2 个答案:

答案 0 :(得分:2)

这取决于您启动服务的方式,以及您应该如何继续。

假设在同一过程和模式START_STICKY中运行的服务非常简单,服务将保留在内存中,直到您从活动中调用stopService()

在这种情况下,您可以创建一个类级静态变量来存储服务当前状态(即未启动,运行,错误,已完成等),并根据您的活动对其进行测试。

问候。

答案 1 :(得分:0)

SharedPreferences,SQLite,文本文件或简单的静态变量或Application实例的变量/字段(在代码的任何地方实现Application的单例到getInstance)。一旦被android杀死,静态变量和应用程序实例将丢失内存中的状态。

相关问题