- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有人可以帮我解决这个问题吗?
我想观察一个文件,看看它是否被修改,以便我可以更新 Activity 。经过多次测试,我确定它根本无法正常工作。我做错了什么吗?
我正在创建一个带有 onEvent 方法的 FileObserver 来显示 Toast 和日志数据,只是为了查看它是否正常工作,但是永远不会调用 onEvent。我已经对现有文件和新文件都进行了尝试,但在这两种情况下似乎都不起作用。
Context context = this;
File fileFolder = context.getFilesDir();
String fileName = "quest";
FileObserver questObserver = new FileObserver(fileFolder.getPath()) { // also tried fileFolder.getName()
@Override
public void onEvent(int event, String path) {
Toast.makeText(getApplicationContext(), "onEvent fired", Toast.LENGTH_LONG).show();
Log.d(TAG, "FileObserver().onEvent");
}
};
questObserver.startWatching();
/* create file */
ObjectOutputStream objectOut = null;
try {
FileOutputStream fileOut = context.openFileOutput(fileName, Context.MODE_PRIVATE);
objectOut = new ObjectOutputStream(fileOut);
objectOut.writeObject(new Quest());
fileOut.getFD().sync();
} catch (IOException e) {
Log.d(TAG, e.getMessage());
} finally {
if (objectOut != null) {
try {
objectOut.close();
} catch (IOException e) {
Log.d(TAG, e.getMessage());
}
}
}
/* read file */
ObjectInputStream objectIn = null;
Quest quest = null;
try {
FileInputStream fileIn = context.openFileInput(fileName);
objectIn = new ObjectInputStream(fileIn);
quest = (Quest) objectIn.readObject();
} catch (FileNotFoundException e) {
// Do nothing
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (objectIn != null) {
try {
objectIn.close();
} catch (IOException e) {
Log.d(TAG, e.getMessage());
}
}
}
Toast.makeText(context, quest.getTitle(), Toast.LENGTH_LONG).show();
questObserver.stopWatching();
如有任何帮助,我们将不胜感激。
最佳答案
'public abstract void onEvent (int event, String path)"-
This method is invoked on a special FileObserver thread. It runs independently of any threads, so take care to use appropriate synchronization! Consider using post(Runnable) to shift event handling work to the main thread to avoid concurrency problems.
http://developer.android.com/reference/android/os/FileObserver.html
如果您通过 handler.post(new Runnable(){...}) 放置 toast ,那应该可以工作。
关于java - Android FileObserver onEvent 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546958/
我正在尝试使用FileObserver监视手机的屏幕截图目录,我尝试了所有事件,方法onEvent id没有在任何事件上被调用。我所做的是安装应用程序后,拍了一张屏幕截图,但该方法没有被调用。即使尝试
我有这个代码 当我点击减号时,ajax标签的监听器应该在onevent之前执行。通常情况下,情况正好相反。 我试过这个: function deleteOrganizer(d
我正在将数据从 AsyncTask 传递到选项卡式 Activity 的 fragment 。为什么EventBus的onEvent()没有被调用? BackgroundWorker.java doI
transformEvents 方法将在 bloc 版本 8 中删除,我们应该使用 onEvent 方法代替,我们如何为事件实现 debounce使用 onEvent? @override S
摘要: 这最终是一个关于 Vue.js 的问题(尽管我认为它通常适用于 JavaScript)。 首先介绍一下背景:我注意到 Angular 风格指南中的一些内容可以作为有关 Vue 的问题的基础。
我正在尝试在我的自定义未捕获异常处理程序 (UEH) 中使用 Flurry 的 onEvent 方法,但事件没有显示,我认为这可能是因为当它到达异常处理程序时 flurry session 已结束。
有没有办法检测事件是使用输入设备触发还是通过.onEvent()中的脚本触发? 最佳答案 短篇小说,不。 您唯一可以检查的是传递到回调处理程序(“事件处理程序”)的事件对象。就像他的答案中建议的 ty
您好,我正在使用事件总线将数据从一个 fragment 传递到另一个 fragment 从 fragment-1 我正在做如下 @Override public void onPause() {
在我的小应用程序中,我从系统(不受我控制)收到一系列排队的 onEventXXX()。 不能保证那些 onEventXXX() 的时间。唯一可以保证的是,它们会按照放入队列的顺序接收。 在 onEve
什么时候应该做以下事情? class Foo : Control { protected override void OnClick(EventArgs e) { //
这个问题已经有答案了: Javascript - arrow functions this in event handler? (5 个回答) 已关闭 3 年前。 为什么我无法在 JavaScript
我正在尝试确定文件何时被修改。目前我有一个类文件观察者类,其中包含 public class fileObserver extends FileObserver { public String
我希望能够在事件中自动提交表单(通用表单,用于用户跟踪)。 例如,创建一个 POST 到 http://www.example.com/index.php?option=track&variable=
我想在从任何文件管理器或图库中删除图像之前复制文件,但是 FileObserver 的 onEvent 触发,但我只想在用户删除任何文件时专门获取事件来自 FileObserver 的观察路径 obs
有人可以帮我解决这个问题吗? 我想观察一个文件,看看它是否被修改,以便我可以更新 Activity 。经过多次测试,我确定它根本无法正常工作。我做错了什么吗? 我正在创建一个带有 onEvent 方法
我正在尝试编写一个 JavaScript(jQuery 也可以)函数来检查用户在当前页面上的非事件时间。我知道在 JavaScript 中有特定的窗口事件,如 window.onload、window
在我的JSF 2.0(在JBoss AS 7)项目中,我希望在我的ajax提交的表单上显示在开始和完成阶段触发的小图标状态,让最终用户知道某些事情仍在发生。 primefaces p:ajaxStat
ApplicationEventListener#onEvent 永远不会被调用。这里可能出了什么问题。使用了资源配置类,我可以调用 API。 MyApplication org.g
我已经编写 JS(主要是 jQuery)好几个月了,但今天我决定将我的第一个抽象作为 jQuery 方法。我已经有了可用的代码,但我觉得/知道我的做法不对,所以我来这里寻求启发。 注意:请不要回答说已
我已经运行了一个 fileObserver,现在我需要在调用 onEvent 后启动一个 Activity ,考虑到我无法获取 startActivity(),我不太确定如何执行此操作。 这是我当前的
我是一名优秀的程序员,十分优秀!