2015-08-29 1 views
0

надеюсь, что все отлично справятся со своим здоровьем и духом, я новичок, или вы можете сказать на стартовом/начальном уровне развития Android, и в настоящее время я столкнулся с проблемой, связанной с экраном всплеска. Проблема, с которой я сталкиваюсь, заключается в том, что я использовал индикатор выполнения в своей основной деятельности, который, как предполагается, загружает индикатор выполнения с интервалом в 20, но он не загружается и продолжает ждать, не загружая индикатор выполнения, все идет дальше отлично, без ошибок, пока он не запустится на эмуляторе. Когда проект запускается на эмуляторе, индикатор выполнения не загружается (я имею в виду после установки) и продолжает ждать и ждать и не стремится к SecondActivity. Я использовал поток со временем ожидания 3000, если я не ошибаюсь, это может быть единственной причиной ошибки, потому что остальная часть кода кажется мне прекрасной. Я вставляю код ниже, пожалуйста, взгляните на него, я сильно застрял в нем. Ждем ваших друзей решения!Ошибка загрузки строки в браузере android splashscreen

общественного класса MainActivity расширяет AppCompatActivity {

ProgressBar pg; 
int progress=0; 
Handler h = new Handler(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    pg = (ProgressBar)findViewById(R.id.progressBar1); 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      for (int i = 0; i < 5; i++) { 

       progress = +20; 
       h.post(new Runnable() { 

        @Override 
        public void run() { 
         // TODO Auto-generated method stub 
         pg.setProgress(progress); 
         if (progress == pg.getMax()) { 

          Intent in = new Intent(getApplicationContext(), SecondActivity.class); 
          startActivity(in); 
         } 

        } 
       }); 
       try { 
        Thread.sleep(3000); 

       } catch (InterruptedException e) { 
        // TODO: handle exception 
       } 
      } 

     } 
    }).start(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

}

ответ

0

Я думаю, что ты имел в виду, а не progress += 20progress = +20. Вероятно, ваш progress застрял до 20, поэтому startActivity никогда не вызывается.

+0

Oooops такая глупая ошибка, спасибо много дорогой M Вай получил ясно, прямо сейчас :) ты настоящий время спасителя брата ценят это;) –

+0

Рад, что это помогло и приветствую SO :-) – natario

0

Вы пытаетесь установить ProgressBar за пределами UI Thread, позвоните по телефону pg.setProgress(progress);. Вы можете исправить это нравится:

ProgressBar pg; 
int progress=0; 
Handler h = new Handler(new Callback(){ 
    public boolean hanldeMessage(Message msg){ 
     if(msg.what == 1) 
      pg.setProgress(progress); 
    } 
}); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    pg = (ProgressBar)findViewById(R.id.progressBar1); 

    // TODO Auto-generated method stub 
    h.post(new Runnable() { 
     @Override 
     public void run() { 
      for (int i = 0; i < 5; i++) { 
       progress += 20; 
       h.sendEmptyMessage(1); 
       // TODO Auto-generated method stub 
       if (progress == pg.getMax()) { 
        Intent in = new Intent(getApplicationContext(), SecondActivity.class); 
        startActivity(in); 
       } 

      } 
      try { 
       Thread.sleep(3000); 

      } catch (InterruptedException e) { 
       // TODO: handle exception 
      } 
     }); 

    } 

} 

Вы можете прочитать больше об общении с UI Thread на here

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