gpt4 book ai didi

android - 为什么 Asynctask 或 Runnable 的生命周期与 Activity 的生命周期不同?

转载 作者:搜寻专家 更新时间:2023-11-01 07:48:10 24 4
gpt4 key购买 nike

例如,如果我们考虑下面的 fragment 代码:

public class HandlerExample extends AppCompatActivity {

private Handler mLeakyHandler = new Handler();
private TextView myTextBox;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_samples);
myTextBox = (TextView) findViewById(R.id.tv_handler);

// Post a message and delay its execution for 10 seconds.
mLeakyHandler.postDelayed(new Runnable() {
@Override
public void run() {
myTextBox.setText("Done");
}
}, 1000 * 10);
}
}

Activity 被销毁时,无论是由于配置更改还是其他原因,Runnable 都不会。 Asynctask 也是如此。

我的问题是,是什么让它即使在 Activity 中声明也不会被销毁?

考虑一下我问的是为什么。

最佳答案

因为 Activity 类在 UI ThreadRunnable 上运行,AsyncTask 等在 Background Threads 上运行 与 ui 线程分开。结束 Activity 不会结束其他线程,除非您特别指示它这样做。

Runnable说明:

The Runnable interface should be implemented by any class whose instances are intended to be executed by a thread.

AsyncTask说明:

AsyncTask enables proper and easy use of the UI thread. This class allows you to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers.

您还可以了解更多关于 Threads 的信息通过阅读文档。

关于android - 为什么 Asynctask 或 Runnable 的生命周期与 Activity 的生命周期不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39563523/

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