在Android中,在UI-Thread中执行无数据库 *** 作(或至少是复杂的 *** 作)通常是一种很好的做法.我有一个复杂形式的活动,我想确保当活动在后台进行时保存所有数据(例如,用户按下主页按钮或打来电话).在activity的onPause() – 方法中,我可以启动一个AsyncTask,它将数据存储在数据库中,但我永远无法确定任务是否成功完成,因为androID可以在任务完成之前终止进程,因为活动和整个应用程序都在后台.
我可以在onPause方法中保存数据同步,但之后可以运行到ANR.
我知道AndroID会在活动被杀死后恢复视图,但只有在VIEw IDs是唯一的时才能正常工作.我有很多以编程方式添加的视图,我无法确保ID的唯一性,并且使用saveInstanceState功能几乎是不可能的,因为我必须保存非常复杂的模型.
是否有可能确保在AndroID杀死进程之前保存数据而不在UI-Thread中执行此 *** 作?
@H_403_8@解决方法:我创建了一个应用程序,我有类似的数据一致性问题.我在那里做的是委托将数据对象存储到我为此目的创建的服务.虽然这会使您的Activity的启动/停止/初始化变得更加困难(一旦活动再次启动,您将不得不等待服务完成其先前启动的保存 *** 作),这是我唯一的“AndroID”方式想到要解决这个问题.
总结以上是内存溢出为你收集整理的如何确保在android杀死进程之前保存数据全部内容,希望文章能够帮你解决如何确保在android杀死进程之前保存数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)