java - 如何在 getActivity 变为 null 时终止线程

标签 java android multithreading

一般为了终止 Thread ,使用下面的代码:

new Thread((new Runnable() {

          @Override
          public void run() {
              ........
              if (getActivity == null) return;

          }   
 }  ).start();

在此代码中,检查 getActivity 仅完成一次。是否有任何代码,以便每当 getActivity 变为 null 时,在调用它的线程上调用 return。

最佳答案

您可以捕获 NullPointerException:

new Thread((new Runnable() {

      @Override
      public void run() {
          try {
              while (true) {
                  ...
                  // reference null Activity. Throw NPE
                  ...
              }
          } catch (NullPointerException e) {
              Log.e(DEBUG, "Activity reference became null. Finishing thread.");
          }

      }   
}  ).start();

关于java - 如何在 getActivity 变为 null 时终止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989342/

相关文章:

java - Collection 抛出或不抛出 ConcurrentModificationException 基于 Collection 的内容

java - 使用 web.xml 中的 Spring 安全性和错误页面保护 Spring Web MVC 应用程序

java - 如何在启动时禁用 EditText 中的编辑,然后在用户单击 EditText 时重新启用它?

multithreading - 将堆栈数据传入和传出闭包

python - 如何限制并发worker数量?

java测试: accelerate time to test timeouts?

Java:使用indexOf方法基于另一个数组对数组进行排序

android - 在 Android 中启用 GPS

android - 我如何在 Spatialite Android 中使用准备好的语句?

c++ - 我可以使用 cmpxchg16b 以原子方式将指针复制到指针和 int,同时递增 int(原子引用计数)吗?