繁体   English   中英

如何在Android中停止线程?

[英]how to stop a thread in Android?

我正在使用Thread初始化一些资源,同时显示带有进度条的启动画面,有时会启动不同的活动(结果)。

起初我使用AsyncTask,它工作得很好,除了我发现我不能使用另一个(Android 1.5)所以我不得不使用一个Thread。

目前,我的代码如下所示:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splashscreen);
    m_progressBar = (ProgressBar) findViewById(R.id.progressBar);
    m_progressBar.setMax(10);
    // start the Init process
    Thread thread = new Thread(initTask);
    thread.start();

由于不推荐使用Thread.stop(),并且我不能使用Thread.interrupt(),如果按下后退键,我无法阻止线程启动新的Activity。

有什么建议么?

停止线程需要来自相关线程的合作。 一般的想法是向线程发送信号,并定期检查该信号然后自行停止。 最简单的“信号”是它检查的简单布尔字段。

首先,您可以同时使用多个AsyncTasks ,对此没有限制。 出了什么问题?

更新:确实在1.6 AsyncTasks在相同的后台线程上连续执行之前。

其次,java中的线程是合作的 - 你不能杀死一个线程,而是你必须通知它你的意图被停止然后它自己停止(即退出run方法)。

要发信号停止,只需要一个布尔字段running = true,哪个线程检查它的主循环。 当运行== false时,线程退出run()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM