我正在使用 android-ndk 写入文件。因此,写入文件是使用本机 c 代码进行的。
它包含一些我正在使用 ndk 的读数。单击按钮开始写入文件。同时我想读取文件的内容并将它们用于另一个线程以显示值,因为写入操作可能会持续 15 秒,用户将不得不等待很长时间才能看到结果,所以我想通过一个,只要我把它放进那个文件。
是否可行,如果可以,可以告诉我如何去做吗?
好吧,我从它开始,现在我是怎么做的,,
Thread thr1 = new Thread(r1);
Thread thr2 = new Thread(r2);
thr1.start();
thr2.start();
r1 = new Runnable() {
public void run() {
File sdcard= Environment.getExternalStorageDirectory();
nativeFunction(sdcard +"/readings.txt");
//takingReading=false;
readingFile = new File(sdcard +"/readings.txt");
Log.i("length of file", ""+readingFile.length());
}
};
r2 = new Runnable() {
public void run() {
try {
Thread.sleep(3000);
File sdcard= Environment.getExternalStorageDirectory();
readingFile = new File(sdcard +"/readings.txt");
Log.i("length of file", ""+readingFile.length());
} catch (InterruptedException iex) {}
}
};
nativeFunction 打开
file= fopen(location,"w+");
这个函数继续在文件中写东西大约 2 分钟,但我需要不断地获取通过本机函数输入的值,所以我启动了第二个线程,但是当我检查 file.length() 时它始终为 0。
当 nativefunction 写入完成时,就会出现实际的文件大小。那么如何解决这个问题呢?