Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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中使用PostDelayed方法启动的线程_Java_Android - Fatal编程技术网

Java 如何停止android中使用PostDelayed方法启动的线程

Java 如何停止android中使用PostDelayed方法启动的线程,java,android,Java,Android,我在android应用程序中创建了一个线程,通过向服务器发出http请求来获取数据 我使用以下代码创建了线程,并定义了如下处理程序 private Handler mHandler = new Handler(); final Runnable mUpdateTimeTask = new Runnable() { public void run() { dilogShow=false; getappdata(); } }; 为了启动这个线程,我使

我在android应用程序中创建了一个线程,通过向服务器发出http请求来获取数据

我使用以下代码创建了线程,并定义了如下处理程序

private Handler mHandler = new Handler();
final Runnable mUpdateTimeTask = new Runnable() {
    public void run() {
        dilogShow=false;
        getappdata();
    }
};
为了启动这个线程,我使用了以下代码行

mHandler.postDelayed(mUpdateTimeTask, 20000);
为了阻止它,我使用了下面的代码行,这行代码有时有效,但并不总是有效

mHandler.removeCallbacks(mUpdateTimeTask);
getappdata()函数如下所示:

public void getappdata() {
    final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message message) {
        // managing UI here
        };
    };

    Thread thread = new Thread() {
        @Override
        public void run() {
            // sending http request here
        };
    };  

    thread.start();
}
请帮帮我。

您可以使用thread.stop();将线程设置为全局线程,以便您也可以在函数外部使用它。
它有时在完成线程执行时停止,否则将挂起。线程上的操作而不是处理程序将执行此操作。这里的处理程序只是延迟线程的开始。

您试图实现什么,您的问题是什么?