我有一个应用程序,我使用一个线程从网络读取一些信息并将其显示在屏幕上。我还有一个点击按钮刷新屏幕。由于我需要使用相同的线程来获取和显示此类信息并且无法重新启动线程,因此每次触发此按钮时,我都会创建此线程的新实例。这是一个很好的做法,还是会因为创建了这么多线程而耗尽了太多的内存资源?值得指出的是,线程每次启动时都会创建新对象,例如:
new PrintWriter(new BufferedWriter(new OutputStreamWriter(app.socket
.getOutputStream())), true);
new BufferedReader(new InputStreamReader(app.socket.getInputStream()));
从不删除,不确定它们是否在线程停止运行时被自动删除但我猜不是。
答案 0 :(得分:1)
如果您担心使用的资源太多,那么只使用一个Handler实例就可以排队线程。使用Handler.post(new runnable())...这将对您的线程进行排队,并确保您的对象正确地进行GC。