gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 06:21:01 27 4
gpt4 key购买 nike

我在 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();使线程全局化,以便您也可以在函数外部使用它。它有时会在完成线程执行时停止,否则会挂起。线程上的操作而不是处理程序就可以解决问题。这里的Handler只是为了延迟线程的启动。

关于java - 如何停止android中使用PostDelayed方法启动的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com