【问题标题】:Does thread die when activity is finished?活动完成后线程会死吗?
【发布时间】:2013-04-29 03:11:37
【问题描述】:

如果我启动一个后台线程,如果在线程终止之前从 finish() 启动的活动会发生什么。线程会终止还是继续存在?

 new Thread(new Runnable() {
                public void run() {
                    while (mProgressStatus > 0) {


                        // Update the progress bar
                        mHandler.post(new Runnable() {
                            public void run() {
                                progressbar.setProgress(mProgressStatus);
                            }
                        });
                    }
                }
            }).start();

【问题讨论】:

标签: java android android-handler


【解决方案1】:

线程独立于其父级运行。线程从 Thread.run() 正常返回到 JVM 或由于未捕获的异常而死亡。

【讨论】:

    【解决方案2】:

    据您所知,您的线程/应用程序可能会在任何时候、任何时间死机,手机会摔倒在地,电池已关闭,而您知道的最后一件事是它以最快的方式关闭了手机。

    Android 生命周期及其管理很复杂,没有真正的答案,因为在 Google,当评论这类事情时,他们非常喜欢“自动”这个词,所以他们肯定不会泄露任何内部细节,至少不是“简单的古英语”。

    有第一个关于 Android 的 Google IO 讨论了这些内容,如果您想了解更多详细信息,可以返回 youtube 并搜索关于 Android 生命周期的 Google IO 讨论。

    无论如何,请记住,Android 绝对不会让您知道应用程序的生存时间和时间,而且您至少需要考虑一些变量:操作系统 (Android) 正在做什么以及用户正在做什么,还有这个当用户提供涉及 Android 需要处理的应用生命周期的输入时,甚至可以将两件事混合在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 2013-12-23
      相关资源
      最近更新 更多