android - 通过 ContentProvider 完成操作的可靠方式

标签 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 来在后台完成这项工作吗?或者也许有更可靠的方法来确保数据已保存?

最佳答案

您可以尝试使用绑定(bind)的后台服务(更好的是,将您的 Content Provider 包裹起来)。这将使它独立于 Activity 状态,只需随时向您的提供者服务发布获取/保存请求。

关于android - 通过 ContentProvider 完成操作的可靠方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15068095/

相关文章:

android - Android SQLite创建表问题

android - 修改Android中已有的联系人

Android 内容提供商列表

android - 平板电脑屏幕方向更改 - 未找到 fragment ID 的 View

Android Activity ——NullPointerException ("unable to instantiate activity ComponentInfo")?

android - 正在调用 ContentProvider 的查询方法

android - 通过Seekable Pipe或Stream与其他Android应用共享?

android - Spotify 内容提供商

android - 如何在不同的android应用程序之间双向传递数据?

java - 读取谷歌个人资料图片java.io.FileNotFoundException