通过ContentProvider完成操作的可靠方法

时间:2013-02-25 13:27:20

标签: android android-contentprovider

我希望在Activity暂停时保存一些数据。我正在使用自己的ContentProvider支持SQLite数据库。

比方说,执行实际保存的方法如下:

public void saveData() {
    //perform operations over ContentProvider in current thread
}

问题是:在onPause中调用此方法是否安全(使用新线程)?

public void onPause() {
    super.onPause();

    new Thread(new Runnable() {

        public void run() {
            saveData();
        }
    }).start();
}

或者我应该开始一个新的Service,它将在后台完成这项工作?或者可能有更可靠的方法来确保数据被保存?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用绑定的后台服务(更好的方法是将Content Provider包装一个)。这将使其独立于活动状态,只需随时向您的提供商服务发送获取/保存请求。

答案 1 :(得分:0)

这是安全的,但我建议不要为此目的使用onPause()。它经常调用(参见活动生命周期文档)。将其移至onStop()。