2016-05-12 2 views
1
public class view extends View 
{ 
    public view(Context context) 
    { 
     super(context); 
    } 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawBitmap(thing1, 200, 200, null); 
     run(); 
    } 
    public void run() 
    { 
     try { 
      Thread.sleep(2000); 
     } catch(InterruptedException ex) { 
      Thread.currentThread().interrupt(); 
     } 
     if(tester2){ 
      thing1=BitmapFactory.decodeResource(getResources(), R.drawable.image2); 
      tester2=false; 
      invalidate(); 
     } 
     else 
     { 
      thing1=BitmapFactory.decodeResource(getResources(), R.drawable.image1); 
      tester2=true; 
      invalidate(); 
     } 
    } 
} 

Это прекрасно работает, но я получаю сообщение «приложение может делать слишком много работы» в журнале и пропускает кучу кадров. Как это исправить?пропущено # кадров ... Приложение может делать слишком много работы над своей основной нитью.

+1

Возможный дубликат [Приложение может выполнять слишком много работы над своей основной нитью) (http://stackoverflow.com/questions/14678593/the-application-may-be-doing-too-much-work-on -ITS-главная-нить) – settaratici

ответ

1

Убедитесь, что вы не используете свой метод run() в основном потоке, потому что это делает паузу весь пользовательский интерфейс не менее 2000 миллисекунд. Запустите этот метод в отдельном потоке.

Смежные вопросы

 Смежные вопросы