gpt4 book ai didi

android - 显示 Activity 后执行 AsyncTask

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:09 24 4
gpt4 key购买 nike

我正在开发 Android 3.1 应用程序。

我想在显示 Activity 后执行 AsyncTask。我想在执行 AsyncTask 之前向用户显示一些内容。

我读到不建议在 onCreate() 上执行 AsyncTask

onStart()onResume() 上我必须在哪里执行 AsyncTask

我想在执行之前留出足够的时间来显示 Activity 。

最佳答案

onCreate()onStart()onResume() 是操作系统调用的生命周期方法,不应直接调用.但是,您可以覆盖它们,让您的代码在 Activity 生命周期的这些阶段执行:

enter image description here

但是,如果您希望 AsyncTask 在所有 View 被膨胀并绘制到屏幕后启动,那么您需要将代码放在此处:

    toReturn.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

public void onGlobalLayout() {
toReturn.getViewTreeObserver().removeGlobalOnLayoutListener(this);
// asyncTask.execute();
}
});

在上面的示例中,toReturn 是 onCreate() 方法中的一个 View 。它可以是您喜欢的任何 View 。

这从 View 中拉取一个 ViewTreeObserver 并向其添加一个监听器,当 View 完成绘制到屏幕时将调用该监听器。请务必保留“removeGlobalOnLayoutListener()` 行,因为这将停止每次绘制 View 时触发代码。

关于android - 显示 Activity 后执行 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205855/

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