Android: как инициализировать действие в фоновом режиме перед его отображением - PullRequest
3 голосов
/ 30 июня 2011

У меня есть действие, в котором я показываю изображение, которое хранится на веб-сайте. Я использую следующий код, чтобы получить его из URL и отобразить активность:

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    Log.i(TAG, "onCreate");
    setContentView(R.layout.ad_screen);

    AsyncTask<String, Void, Integer> task = new AsyncTask<String, Void, Integer>() 
    {
        /** The system calls this to perform work in a worker thread and
         * delivers it the parameters given to AsyncTask.execute() */
        @Override
        protected Integer doInBackground(String... urls) 
        {
            fetchAd();
            return 0; 
        }

        /** The system calls this to perform work in the UI thread and delivers
         * the result from doInBackground() */
        @Override
        protected void onPostExecute(Integer result) 
        {
            displayAd();
        }
    };
    task.execute("");
}

Это работает очень хорошо, но поведение не такое, как я хочу: в этом случае действие выводится на экран (с анимацией справа налево), а затем начинается AsyncTask. Таким образом, изображение отображается на экране после задержки (что является нормальным).

Но я бы хотел выполнить запрос до того, как действие будет перенесено, чтобы экран отображался непосредственно с изображением без каких-либо задержек.

Есть ли способ иметь такое поведение? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

Вы можете загрузить изображение в предыдущем упражнении, создать растровое изображение, а затем передать его в качестве дополнительного в намерении, которое запускает это упражнение.

2 голосов
/ 30 июня 2011

Используйте AsyncTask для загрузки изображений в предыдущем занятии и отображения изображений в текущем занятии.

0 голосов
/ 30 июня 2011

Вы могли бы в «родительском» действии, которое запускает новое действие, выполнять выборку содержимого, сохранять его либо в памяти, либо в каком-либо постоянном режиме быстрого доступа, и после этого запускать действие.

Тот же принцип может заключаться в том, чтобы ввести действие "загрузчик", которое будет отображать загрузчик, и предварительно извлечь данные, когда все полученные данные начнут действие, которое должно отображать данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...