1

我的应用程序保留了一个数据库,其中包含有关用户手机上所有图像的一些信息。但是,一旦他们添加了新图像(例如通过拍照),我的应用程序应该能够知道这一点,并将新图像的信息添加到数据库中。显然不想遍历整个数据库来检查哪些是新图像..

我的研究表明,我可以使用 FileObserver 拥有一个“文件侦听器”。但是,我知道这仅在我的应用程序运行时有效。因此,如果我实现 FileObserver,关闭应用程序然后打开它,我是否能够知道自上次打开应用程序以来哪些是新图像?

如果不是,那么我知道我需要某种后台服务,但是在文档中说它们应该被实现为只使用简单/非繁重的操作......并且因为我将观察所有子目录(recusrively)对于使用 FileObserver 的新图像,我想这将是一项昂贵的操作?如果服务停止运行,并且在此期间添加了新图像,会发生什么情况。FileObserver 会选择这个吗?

谢谢

4

1 回答 1

1

看起来你需要一个 BroadcastReceiver

public class CameraReciver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    }
}

在清单中:

<receiver android:name=".CameraReciver" android:enabled="true" >
        <intent-filter>
            <action android:name="com.android.camera.NEW_PICTURE" />
            <data android:mimeType="image/*" />
        </intent-filter>
</receiver>

包括此权限:

<uses-permission android:name="android.permission.CAMERA" />
于 2017-03-03T15:10:45.250 回答