Android 重新启动的活动无法在重新启动前获取其已启动的服务的状态
这是一种情况,, 我有一个android活动,它启动一个服务(该服务用于发送/接收文件等)。服务sendMessage()通过在Activity类对象中创建的处理程序发送到Activity。 然后,“活动”将显示服务在其包含的视图上执行的当前操作的状态 问题就在这里Android 重新启动的活动无法在重新启动前获取其已启动的服务的状态,android,Android,这是一种情况,, 我有一个android活动,它启动一个服务(该服务用于发送/接收文件等)。服务sendMessage()通过在Activity类对象中创建的处理程序发送到Activity。 然后,“活动”将显示服务在其包含的视图上执行的当前操作的状态 问题就在这里 活动开始 在全局对象中创建的活动处理程序 活动启动服务- 用户通过活动命令服务开始发送/接收文件的过程 服务现在很忙,并且还通过通过全局对象获得的处理程序向UI发送消息 活动接收并处理消息()并在UI上发布状态 用户现在将我的活动发
这取决于您启动服务的方式,以及应该如何继续 假设最简单的情况是,服务在同一进程中以模式
START\u STICKY
运行,则该服务将保留在内存中,直到您从activity调用stopService()
在这种情况下,您可以创建一个类级静态变量来存储服务当前状态(即未启动、正在运行、错误、已完成等),并从您的活动中对其进行测试
关于。共享引用、SQLite、文本文件或应用程序实例的静态变量或变量/字段(在代码的任何位置将应用程序的单例实现为getInstance)。一旦被android杀死,静态变量和应用程序实例将丢失内存中的状态。您能说清楚一点吗?您的意思是,如果活动被终止,静态变量仍然存在吗?重新启动时,我可以从中获得价值?活动是应用程序的一部分(某种程度上)。所以,当进程处于活动状态时,静态变量是可用的。当进程处于活动状态时,应用程序也仍然处于活动状态,所以您可以重新定义应用程序的类名以拥有自己的
类???扩展应用程序
以使用singleton.fine访问静态或字段,那么在服务类中创建一个静态变量来存储上次状态如何,这不一样吗?嗯,您也可以这样做,所有静态变量都可用。但如果用户真的离开了您的应用程序,Android可以决定终止该进程,所以您甚至可能丢失静态变量。这实际上取决于应用程序的逻辑。如果服务的结果只对应用程序生命周期有意义,而不是静态的,则使用文件或共享引用或其他存储。是的,我明白了,如果整个应用程序都消失了,那么在我的情况下就不重要了,所以我只会在服务中创建一个静态变量来存储最后的状态。我不确定应用程序类如何工作,我将看一看。谢谢,服务类中的静态变量?是的,工作正常。我用它来控制我的应用程序中的服务状态。