Я получаю сообщение: “the application май be doing too much work on its main thread”, используя Retrofit с [закрытым] Android

Хорошие у меня есть этот метод, чтобы получать response:

public void cargarFilas(String filtro){

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .addNetworkInterceptor(new StethoInterceptor())
            .build();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://10.0.2.2/api/"+filtro+"/")
            .addConverterFactory(GsonConverterFactory.create())
            .client(okHttpClient)
            .build();

    apiService= retrofit.create(ApiService.class);
    Call<Usuario_Fila> call = apiService.list(txtBuscar.getText().toString());
    call.enqueue(new Callback<Usuario_Fila>(){

        @Override
        public void onResponse(Call<Usuario_Fila> call, Response<Usuario_Fila> response) {
            if (response.body() != null && response.isSuccessful()) {
                datos = response.body();
                Usuario_Adaptador_Busqueda adaptador = new Usuario_Adaptador_Busqueda(Usuario_BusquedaActivity.this, datos.getFila());
                list.setAdapter(adaptador);
            }
        }

        @Override
        public void onFailure(Call<Usuario_Fila> call, Throwable t) {
            Toast.makeText(Usuario_BusquedaActivity.this, "Fallo", Toast.LENGTH_SHORT).show();
        }
    });

}

Проблема состоит в том, что активность, где работает метод, становится очень медленной и медлит с тем, чтобы выходить ему очень даже на кнопку. У меня появляется это в log:

I/Choreographer (1378): Skipped 55 frames! The application май be doing too much work on its main thread.

Большое спасибо.

3
задан 06.05.2017, 01:16
1 ответ

The application в мае be doing too much work on its main thread

Это в действительности не ошибка, но - предупреждение, как descripci¦n это показывает, осуществляется много обработка в главном трэде.

, Чтобы это упорядочивать, необходимо идентифицировать точки, где есть или возможно произошел длинный duraci¦n обработки. Лучший способ состоит в том, чтобы делать всю обработку не важно cuÃ: n pequeño или большой в трэде, отделенном от главного трэда интерфейса пользователя. Asà - состойте в том, чтобы соглашаться на данные о базе данных SQLite или делать какие-то операции matemÃ: костариканские hardcore или просто упорядочивать array - Реализовывать это в различном Thread.

https://developer.android.com/guide/components/processes-and-threads.html

3
ответ дан 24.11.2019, 09:27