在我的 Android 应用程序中,我有一个扩展 Thread
的类,该类在建立互联网连接(3G/WIFI)时运行。
加载应用程序时,如果建立了互联网连接,我会像这样实例化该类:
MyThread thread = new MyThread(); // (it calls its own start() method)
在线程中,如果连接丢失,我想销毁Thread
。我被告知不要运行 finalize()
,我该如何销毁它以使 thread == null
为 true?
编辑:我问的原因是,稍后,我想重新启动线程,以防连接返回,并检查 (thread == null)
是否很容易。我可以使用一个标志来指示线程需要重新启动或检查它是否被中断。感谢迄今为止提供的有用评论。
最佳答案
通常,您不会子类化Thread
。您创建一个 Runnable,并将其传递给一个 Thread 对象,或者更好的是,一个 ExecutorService。
但是你不必担心线程完成后的清理工作,它会由垃圾收集器自动处理。如果您希望自己的本地引用为空,只需自己将其清空即可,或者更好的是,不要保留它。
new Thread( new Runnable() {
public void run() {
// put your stuff here
}
} ).start();
关于java - 结束类实例的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087620/