目前,我有服务,它在单独的进程中运行。这是主要活动中的代码。
@Override
public void onStart() {
super.onStart();
// Start auto complete service.
autoCompleteServiceIntent = new Intent(AutoCompleteService.class.getName());
startService(autoCompleteServiceIntent);
bindService(autoCompleteServiceIntent, serviceConnection, 0);
}
@Override
public void onStop() {
super.onStop();
// Stop auto complete service.
unbindService(serviceConnection);
stopService(autoCompleteServiceIntent);
autoCompleteServiceIntent = null;
}
该服务将具有以下特点。
- 该服务在单独的进程中运行。原因是,它将大量数据加载到内存中。让服务在单独的进程中运行,将允许我们有更大的内存限制。
- 一旦主要活动死亡,服务也将死亡。
我想知道,我应该在onStart/onStop对中启动/停止服务吗?或者,我应该在onCreate/onDestroy中启动/停止服务。
我能想到的好处是,当代码在 onStart/onStop 对中时,只要活动不可见,我就可以立即释放未使用的内存。因此,释放大量系统资源。注意,onDestroy 并不总是被立即调用,即使活动已经退出。
不好的是,如果我按 HOME 并频繁返回,我的服务将频繁执行内存加载/卸载。这可能会导致我的应用程序执行速度相当慢。