我在我的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();
}
请帮帮我。
答案 0 :(得分:-1)
你可以使用thread.stop();使线程全局化,以便您也可以在函数外部使用它。 它有时在完成线程执行时停止,否则它会挂起。线程上的操作而不是处理程序将完成这一操作。这里的处理程序只是为了延迟线程的启动。