【发布时间】:2012-08-29 09:06:21
【问题描述】:
我在一个继承自Thread类的类中写了如下方法:
protected File createFile(String fileName){
try {
File file = new File(fileName);
if(!file.exists())
file.createNewFile();
else{
file.delete();
file.createNewFile();
}
file.mkdirs();
return file;
}catch (IOException e) {
e.printStackTrace();
return null;
}
}
一旦线程已经启动,它将从活动中调用。如果我从我的活动中这样做:
File logFile = mThread.createFile("/Logs/test.txt");
if(logFile!=null)
//do something
else
//do something else
在创建文件之前它会阻塞吗?
【问题讨论】:
-
它将在调用线程上运行 - 如果您从 UI 线程调用它,它将阻塞您的活动,如果您从您创建的线程调用它,它将在该线程上运行。跨度>
-
您是否在关注 Thread 文档? (developer.android.com/guide/components/…) 如果您刚刚启动,请改用 AsyncTask (developer.android.com/reference/android/os/AsyncTask.html) 它更清楚什么在哪里运行..
-
您在发布问题之前是否亲自检查过?
-
是的,它确实创建了文件,但我想知道主要活动是否暂时被阻止。我以前使用过 AsyncThread,但我正在尝试编写一个无限期运行的单个线程,并且仅在从活动中调用其方法时才执行 IO 操作。
标签: java android multithreading file blocking