Android - 侦听新的图像文件

时间:2017-03-03 13:47:14

标签: android android-service background-service fileobserver

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

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

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

由于

1 个答案:

答案 0 :(得分: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" />