java - 结束类实例的正确方法?

标签 java android multithreading

在我的 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/

相关文章:

java - Spring MVC 依赖注入(inject)理解

java - 如何避免在java中调试代码?

java - 一旦我们在 JBoss AS 中配置了数据源,我们是否应该将 JDBCDriver 添加到我们的 Maven 项目中的依赖项中?

java - Spring 应用程序的单点登录

java - ImageButton 在类中不起作用

java - Java 中的魔方求解 API

java - JMX 线程未关闭

json - Perl:线程与 JSON

android - 从 json 获取一次数据并在 3 个 fragment 中使用它

android - 我在处理程序中有一个关于 TextView 的 java.lang.NullPointerException