Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android活动将关闭Looper&;处理程序?_Java_Android_Multithreading_Loops_Thread Safety - Fatal编程技术网

Java Android活动将关闭Looper&;处理程序?

Java Android活动将关闭Looper&;处理程序?,java,android,multithreading,loops,thread-safety,Java,Android,Multithreading,Loops,Thread Safety,很抱歉,但是,我很困惑 如果说,我有一个单一的活动,在它里面, 我试图创建一个内部类来实现具有循环器和处理程序的线程 我的问题是,; 如果我完成()我的活动。这是我上次刚创建的任何活套/处理器吗? 我担心线程仍在后台运行,尽管活动已关闭->结束。完成后,您不必关心连接到主线程的处理程序,因为它的循环器(以及线程本身)由系统管理,必要时将退出 但是,如果处理程序连接到一个不由系统管理的单独的循环器(例如,一个由您启动的具有循环器的线程),那么如果您没有停止相关线程(具有循环器的线程),它将在那里。

很抱歉,但是,我很困惑 如果说,我有一个单一的活动,在它里面, 我试图创建一个内部类来实现具有循环器和处理程序的线程

我的问题是,; 如果我完成()我的活动。这是我上次刚创建的任何活套/处理器吗?


我担心线程仍在后台运行,尽管活动已关闭->结束。

完成后,您不必关心连接到主线程的处理程序,因为它的循环器(以及线程本身)由系统管理,必要时将退出

但是,如果处理程序连接到一个不由系统管理的单独的循环器(例如,一个由您启动的具有循环器的线程),那么如果您没有停止相关线程(具有循环器的线程),它将在那里。这对于所有线程来说都是正确的,线程有一个活套这一事实并不会改变这种情况

因此,这里重要的一点是停止手动启动的每个线程

此外:

  • 您可以随时在Eclipse中检查正在运行的线程。只需附上 调试器并转到“调试”视图。所有线程都将列在那里
  • 看一看

“在finish()调用之后,连接到“主UI线程”的所有处理程序都将停止(因为主线程的Lopper退出)。”这显然不是真的,为什么finish()会强制Looper.quit()?尝试使用带有scheduleAtFixedRate的计时器。