Android:进程生命周期和数据库访问
在下列假设下:Android:进程生命周期和数据库访问,android,database,lifecycle,Android,Database,Lifecycle,在下列假设下: 每个阻塞操作(包括I/O,包括db访问)都必须发生在UI线程之外 如果没有活动或服务处于活动状态,则关联的进程有资格以优先级()终止 离开活动时,如何在数据库(sqlite)中保存某些内容 实际上,在onPause()、onStop()或onBackPressed()中,您不能写入数据库(UI线程中的I/O)。因此,您可以创建线程或异步任务,但在这种情况下,在异步任务执行期间可能没有活动或服务处于活动状态,因此进程将被视为“非活动”,并将优先终止 对于一个很长的操作,您可以创建一
onPause()
、onStop()
或onBackPressed()
中,您不能写入数据库(UI线程中的I/O)。因此,您可以创建线程
或异步任务
,但在这种情况下,在异步任务
执行期间可能没有活动或服务处于活动状态,因此进程将被视为“非活动”,并将优先终止
对于一个很长的操作,您可以创建一个服务,但您不能仅为将状态保存到数据库中而创建服务
你怎么看?为什么你“不想只在将状态保存到数据库中时才这样做”?想象一下,你想在离开活动时编辑一个配置文件并将其保存到数据库中:我认为使用一个服务会有点过头,不是吗?一个反问:如果您在离开活动时保存了它,为什么不在用户更改字段后立即保留任何更改?或者提供一个专用的保存按钮,该按钮将(a)阻止并保存,b)随后离开活动?