处理程序构造函数在Android中停止线程

处理程序构造函数在Android中停止线程,android,multithreading,handler,Android,Multithreading,Handler,发生了一些奇怪的事情。我不能显示所有的代码,但情况是这样的 Runnable program = new Runnable() { @Override public void run() { //This code is running new Handler(); //This code not running }}; new Thread(program).start(); 日志没有显示任何内容。主线程工作正常。您应该始终在

发生了一些奇怪的事情。我不能显示所有的代码,但情况是这样的

Runnable program = new Runnable() {
    @Override 
    public void run() {
        //This code is running
        new Handler();
        //This code not running
}};
new Thread(program).start();

日志没有显示任何内容。主线程工作正常。

您应该始终在UI线程中声明
处理程序
。您需要为
处理程序
提供来自某个线程的
循环器。从主UI线程:

 Handler mHandler = new Handler(Looper.getMainLooper());

Handler
始终在
Looper
线程上下文中运行。创建另一个线程时,其上下文与
活套
不同。正确的解决方案是声明
处理程序
总是在
onCreate()
onStart()
onResume()
您应该总是在UI线程中声明
处理程序
。您需要从某个线程向
处理程序
提供一个
循环器
。从主UI线程:

 Handler mHandler = new Handler(Looper.getMainLooper());

Handler
始终在
Looper
线程上下文中运行。创建另一个线程时,其上下文与
活套
不同。正确的解决方案是声明
处理程序总是在
onCreate()
onStart()
onResume()

创建
处理程序
首先需要在该线程上进行
循环器
轮询。顺便说一下,通常不需要在非UI线程内创建处理程序。在runnable外部创建一个处理程序。一个更简单的替代方法是使用
runOnUiThread()
方法。

创建
处理程序
首先需要在该线程上使用
循环器
轮询。顺便说一下,通常不需要在非UI线程内创建处理程序。在runnable外部创建一个处理程序。一个更简单的替代方法是使用
runOnUiThread()
方法。

试试看,你的问题是…?试试看,你的问题是。。。?