例如,如果我們考慮下面的代碼片段:爲什麼Asynctask或Runnable的生命週期與Activity的生命週期不同?
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
中聲明?
想想我正在問爲什麼。
如果你不使用線程和活動週期混亂,裝載機是ü最佳選擇。 https://developer.android.com/guide/components/loaders.html – uguboz
其不同,因爲它們不是一個活動。 – petey