为了在我的应用程序中执行一些IO操作,我编写了一个线程,它的run方法没有任何内容,但它有其他几个方法,如void write(String filename,String data)和void create(String filename),所有其中的工作就像一个魅力。我的问题是,我曾经认为这个线程在后台或类似的东西上运行但是因为在我的主活动上删除.run()语句后调用所述方法仍然有效,我怎么能让一个线程运行并等待一个来自活动的消息没有阻止应用程序?第二个问题,因为方法仍在工作,是否意味着当我从主要活动中调用它们时,它们正在主UI线程上执行?
答案 0 :(得分:3)
答案 1 :(得分:2)
对于在所述线程上运行的方法,您必须从线程而不是从任何其他线程调用您的方法。
class WorkerThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
}
}
然后使用WorkerThread.mHandler.postRunnable
或sendMesssage
在另一个主题上完成工作。
答案 2 :(得分:1)