gpt4 book ai didi

android - 如何关闭未使用的线程?

转载 作者:太空狗 更新时间:2023-10-29 13:36:42 27 4
gpt4 key购买 nike

我正在努力使用 Android 应用来处理对我来说很陌生的事情。我在我的应用程序中创建了一个线程,持久消息订阅者,等待来自后台服务器的消息。当我退出我的应用程序时,线程仍在工作。实际上,线程在无法连接到服务器时会一次又一次地尝试连接。所以我想检查我的应用程序是否已关闭或仍处于 Activity 状态,否则我想让我的应用程序向线程发送一些消息以在它关闭之前停止。

在 Android 中有什么方法可以做到这一点?

最佳答案

是的,有一个简单的模式。您在 onResume() 中启动您的线程,并在 onPause() 中停止它。

在你的线程的可运行中,你有一个像这样的循环

@Override
public void run() {
while (mRunning) {
// re-try server
}
}

在你的 Activity 中覆盖 onResume() 之类的,

@Override
protected void onResume() {
super.onResume();

mRunner = new Runnable { .... );
new Thread(mRunner).start();
}

覆盖 onPause() 以停止线程,

@Override
protected void onPause() {
super.onPause();

if (mRunner != null) {
mRunner.setRunning(false);
mRunner = null;
}
}

这当然会停止循环,run() 退出,线程完成。

一般来说,对于您注册的任何类型的监听器或您启动的线程,您都遵循此模式。在onResume() 设置,在onPause() 关闭。

关于android - 如何关闭未使用的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798784/

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