显示Activity后执行AsyncTask

Van*_*nel 3 android asynchronous

我正在开发一个Android 3.1应用程序.

我想执行一个AsyncTaskafter活动.我想在执行之前向用户显示一些内容AsyncTask.

我读过,它不建议执行AsyncTaskonCreate().

在那里我有执行AsyncTaskonStart()还是onResume()

我希望在执行之前留出足够的时间来显示活动.

Gra*_*eme 11

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

在此输入图像描述

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

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

        public void onGlobalLayout() {
            toReturn.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            // asyncTask.execute();
        }
    });
Run Code Online (Sandbox Code Playgroud)

在上面的示例中toReturn是onCreate()方法中的视图.它可以是你喜欢的任何视图.

ViewTreeObserver将从View中拉出一个并添加一个侦听器,当视图完成绘制到屏幕时将调用该侦听器.保持"removeGlobalOnLayoutListener()"行是很重要的,因为这将在每次绘制视图时停止代码触发.