android – 我应该在onStartonStop或onCreateonDestroy上启动停止服务

android – 我应该在onStartonStop或onCreateonDestroy上启动停止服务,第1张

概述目前,我有服务,它在不同的流程中运行.这是主要活动中的代码. @Overridepublic void onStart() { super.onStart(); // Start auto complete service. autoCompleteServiceIntent = new Intent(AutoCompleteService.class.getName( 目前,我有服务,它在不同的流程中运行.这是主要活动中的代码.

@OverrIDepublic voID onStart() {    super.onStart();    // Start auto complete service.    autoCompleteServiceIntent = new Intent(autoCompleteService.class.getname());     startService(autoCompleteServiceIntent);    bindService(autoCompleteServiceIntent,serviceConnection,0);        }@OverrIDepublic voID onStop() {    super.onStop();    // Stop auto complete service.    unbindService(serviceConnection);    stopService(autoCompleteServiceIntent);    autoCompleteServiceIntent = null;}

该服务将具有以下特征.

>该服务在单独的过程中运行.原因是,它会将大量数据加载到内存中.让服务在单独的进程中运行,将允许我们有更大的内存限制.
>一旦主要活动死亡,服务也将死亡.

我想知道,我应该在onStart / onStop对上启动/停止服务吗?或者,我应该在onCreate / onDestroy中启动/停止服务.

我能想到的好处是,当在onStart / onStop对中使用代码时,只要活动不可见,我就可以立即释放未使用的内存.因此,释放大量系统资源.注意,即使活动已退出,也不会立即立即调用onDestroy.

不好的是,如果我按HOME并经常回来,我的服务将经常执行内存加载/卸载.这可能导致我的应用程序执行速度相当慢

解决方法 在您的场景中,您应该停止服务onDestroy的原因是,当活动被自我销毁,被取消关闭时或者系统需要内存时调用它.这将是结束服务的合适场所.

当您在申请中来回移动或回家时,甚至会在其他地方调用onStop.在主页上没有调用onDestroy的原因是活动还没有被销毁.如果您关闭活动按下它将调用onDestroy.

总结

以上是内存溢出为你收集整理的android – 我应该在onStart / onStop或onCreate / onDestroy上启动/停止服务全部内容,希望文章能够帮你解决android – 我应该在onStart / onStop或onCreate / onDestroy上启动/停止服务所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1127380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存