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

时间:2011-03-25 05:46:07

标签: java android

我在我的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();
}

请帮帮我。

1 个答案:

答案 0 :(得分:-1)

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