我一直在写一个像Android应用程序的Dropbox,它会自动将照片上传到服务器。当用户通过相机拍照并将其保存在SD卡上时,会注意到上传这些照片。
我启动了一项服务以确保长时间收听,并注册了一个内容观察器来监听相机事件。但是当操作系统处于资源压力之下时,它将终止服务并且内容观察者将不再被解雇。那么如何使内容观察者始终有效呢?
顺便说一下,我的问题是询问如何像服务一样尽可能长时间地运行内容观察者。如果内容观察者不是最佳选择,那么还有什么。答案 0 :(得分:1)
试试这个,但它有一些限制:
<receiver android:name=".pictureReceiver" >
<intent-filter android:priority="10000" >
<action android:name="android.intent.action.CAMERA_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
BroadcastReceiver实施了当前正在侦听"android.intent.action.CAMERA_BUTTON"
的内容。但是,在想要它时似乎没有被调用。如果前台活动没有消耗该事件,它只会被广播。
OR
您可以使用FileObserver:
new FileObserver(path) {
@Override
public void onEvent(int event, String path) {
if (event == FileObserver.CREATE)
Toast.makeText(getActivity(), "File created", Toast.LENGTH_SHORT).show();
}
}.startWatching();