java как сделать периодическое выполнение задачи в потоке?

написал вот такой код, но он не работает. Скажите пожалуйста как сделать так что-бы работало? Я создал поток thread в котором изменяю прозрачность изображения раз в секунду, но у меня почемуто ничего не изменяется.


public class MainActivity extends Activity {

    float ff = 0.0f;

    public ImageView fon01;
    public TextView text1;
    public Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //or LANDSCAPE

        intent = new Intent(this, menu_activity.class);
        text1 = findViewById(R.id.text1);
        fon01 = findViewById(R.id.fon_0);


        thread.start();
    }   // --------Exit onCreate



    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {

            try {

                Thread.sleep(1000);

            } catch (InterruptedException e) {

                if (ff < 1) {
                    ff += 0.1f;
                } else {
                    // onIntent();
                }

                fon01.setAlpha(ff);

            }

        }
    });


    public void onIntent() {
        thread.isInterrupted();
        startActivity(intent);
    }



}


Ответы (1 шт):

Автор решения: dmtr

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

catch (InterruptedException e) {

    if (ff < 1) {
    ff += 0.1f;
    } else {
        // onIntent();
    }

    fon01.setAlpha(ff);

}

Перенесите это в блок try

→ Ссылка