2016-05-29 3 views
0

Прежде всего, мой код:Android - вопросы темы (состояние, которое Достигнутые дважды) ProgressBar

private ProgressBar progressBar; 
private int progressStatus = 0; 
private Handler handler = new Handler(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.activity_starter_load); 

    progressBar = (ProgressBar) findViewById(R.id.progressBar1); 

    new Thread(new Runnable() { 
     public void run() { 
      while (progressStatus < progressBar.getMax()) { 
       progressStatus++; 
       handler.post(new Runnable() { 
        public void run() { 
         progressBar.setProgress(progressStatus); 
        } 
       }); 
       try { 
        Thread.sleep(50); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 

       if (progressStatus == 100) { 
        Log.e("download complte", "testing"); // This is being printed twice. 
       } 
      } 
     } 
    }).start(); 
} 

Вот, я тестирование ProgressBar в Android. Когда он достигает состояния:

if (progressStatus == 100) {...} 

Журнал печатается дважды в LogCat, и я не знаю, почему. Что я делаю не так?

ответ

0

Удалите эту строку, и вы не получите вторую строку в файле журнала.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 

На самом деле, когда вы задаете андроид, чтобы изменить ориентацию экрана, андроид система воссоздает вашу деятельность и, следовательно, создает новый поток, а другой поток все еще работает. Это приводит к вашей проблеме.

Если вы хотите, чтобы ваша ориентация экрана была ландшафтной, попробуйте изменить ее через файл манифеста в соответствии с атрибутом ориентации активности.

+0

Полезная ссылка: https://developer.android.com/guide/topics/resources/runtime-changes.html –

+0

Спасибо, это сработало для меня. – LukeHxH