Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android服务持久化_Java_Android_Service_Persistent - Fatal编程技术网

Java android服务持久化

Java android服务持久化,java,android,service,persistent,Java,Android,Service,Persistent,在我的应用程序中,我实现了一个远程服务,该服务每20分钟与Web服务器交换一次数据,并修改MyApplication类中扩展应用程序的某个对象的值 在12或15小时后,android会杀死我的应用程序类和/或我的服务。 我试着实施这个计划 android:alwaysRetainTaskState=“true” 没有结果。有人可以向我解释如何在android中持久化服务或应用程序?我看到更多的应用程序在后台运行了好几天都没有问题,但我不知道如何做到这一点 我知道,如果android需要一些空闲内

在我的应用程序中,我实现了一个远程服务,该服务每20分钟与Web服务器交换一次数据,并修改MyApplication类中扩展应用程序的某个对象的值

在12或15小时后,android会杀死我的应用程序类和/或我的服务。 我试着实施这个计划

android:alwaysRetainTaskState=“true”

没有结果。有人可以向我解释如何在android中持久化服务或应用程序?我看到更多的应用程序在后台运行了好几天都没有问题,但我不知道如何做到这一点

我知道,如果android需要一些空闲内存,它可以杀死每个应用程序,但我的系统有180mb的空闲内存,没有运行的应用程序,因为我用它来测试我的程序

有人可以向我解释如何在android中持久化服务或应用程序

你没有。您编写应用程序时,不需要一直将其存储在内存中

在我的应用程序中,我实现了一个远程服务,该服务每20分钟与Web服务器交换一次数据,并修改MyApplication类中扩展应用程序的某个对象的值

请使用
AlarmManager
IntentService
,这样您的服务不需要存储在内存中,除非它正在执行有意义的工作。这也意味着当你在内存中时,Android不太可能杀死你的服务,用户也不太可能杀死你的服务,因为他们认为你在浪费内存

有人可以向我解释如何在android中持久化服务或应用程序

你没有。您编写应用程序时,不需要一直将其存储在内存中

在我的应用程序中,我实现了一个远程服务,该服务每20分钟与Web服务器交换一次数据,并修改MyApplication类中扩展应用程序的某个对象的值


请使用
AlarmManager
IntentService
,这样您的服务不需要存储在内存中,除非它正在执行有意义的工作。这也意味着当你在内存中时,Android不太可能杀死你的服务,用户也不太可能杀死你的服务,因为他们认为你在浪费内存。

thansk for reply Commonware。所以我必须扩展IntentService而不是Service?我将使用AlarmManager而不是TimerTask。对吗?另一个问题:当我使用alarm manager时,服务每20分钟启动一次?很抱歉,如果我发布了另一个问题,但我无法编辑上一篇文章。如果服务不在内存中,应用程序类是否也一样。因此,我必须将对象和变量保存在文本文件中或作为共享首选项保存?谢谢again@zerocool87:“所以我必须扩展IntentService而不是Service?”--这是
AlarmManager
的典型情况。“我将使用AlarmManager而不是TimerTask。对吗?”--对。“当我使用alarm manager时,服务每20分钟启动一次?”--我会让用户选择频率,否则它可以是您想要的任何频率。“。因此,我必须将对象和变量保存在文本文件中,或者是否作为共享首选项保存?”--是的,您的状态需要位于文本文件、共享首选项、数据库或其他位置。我以20分钟为例:)因此我必须将服务实现为IntentService,并使用AlarmManager每20或30分钟唤醒一次服务。这样,我可以从活动中唤醒服务吗?我不明白,如果使用alarm manager,服务是否停止并重新启动,或者只是“休眠”。谢谢你reply@zerocool87:“这样可以从活动中唤醒服务吗?”--没有活动。“我不明白,如果使用alarm manager,服务是否停止并重新启动,或者只是处于“睡眠状态”。--服务已停止
IntentService
在命令模式上运行,从
startService()
接收意图,将其传递到后台线程和
onHandleIntent()
,然后在工作完成时自动关闭。thansk用于reply Commonware。所以我必须扩展IntentService而不是Service?我将使用AlarmManager而不是TimerTask。对吗?另一个问题:当我使用alarm manager时,服务每20分钟启动一次?很抱歉,如果我发布了另一个问题,但我无法编辑上一篇文章。如果服务不在内存中,应用程序类是否也一样。因此,我必须将对象和变量保存在文本文件中或作为共享首选项保存?谢谢again@zerocool87:“所以我必须扩展IntentService而不是Service?”--这是
AlarmManager
的典型情况。“我将使用AlarmManager而不是TimerTask。对吗?”--对。“当我使用alarm manager时,服务每20分钟启动一次?”--我会让用户选择频率,否则它可以是您想要的任何频率。“。因此,我必须将对象和变量保存在文本文件中,或者是否作为共享首选项保存?”--是的,您的状态需要位于文本文件、共享首选项、数据库或其他位置。我以20分钟为例:)因此我必须将服务实现为IntentService,并使用AlarmManager每20或30分钟唤醒一次服务。这样,我可以从活动中唤醒服务吗?我不明白,如果使用alarm manager,服务是否停止并重新启动,或者只是“休眠”。谢谢你reply@zerocool87:“这样可以从活动中唤醒服务吗?”--没有活动。“我不明白,如果使用alarm manager,服务是否停止并重新启动,或者只是处于“睡眠状态”。--服务已停止
IntentService
在命令模式上运行,从
startService()
接收意图,将其传递到后台线程和
onHandleIntent()
,然后在工作完成时自动关闭。