Реализовать фейерверковую нить внутри метода
Я пытаюсь выполнить функциональность фейерверков на основе кода GitHub от Lenoids. Я хочу создать два фейерверка (один белый и другой красный), чтобы они отображались непрерывно через каждые две секунды.
Вот что я сделал до сих пор:
- Созданы две кнопки (по одной для каждого цвета фейерверка). Кнопки имеют функцию фейерверка.
Нажимайте кнопки программно в потоке, чтобы отобразить фейерверк.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_congratulations); new Thread(new Runnable() { @Override public void run() { while(true){ try { Thread.sleep(100); button10.callOnClick(); //for red fireworks button11.callOnClick(); //for white fireworks } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); }
Проблема в том, что если я увеличу значение метода сна, то фейерверк не появится вообще. Как я могу выполнить две секунды непрерывной функциональности фейерверка?
Вот код фейерверка:
new ParticleSystem(MyClass.this, 100, R.drawable.star_pink, 800) .setSpeedRange(0.1f, 0.25f) .oneShot(view, 70);
1 ответ
Если вы хотите запускать фейерверк каждые две секунды, используйте Handler вместо thread и thread.sleep.
final Handler ha=new Handler();
ha.postDelayed(new Runnable() {
@Override
public void run() {
button10.callOnClick();
button11.callOnClick();
ha.postDelayed(this, 2000);
}
}, 2000);
Надеюсь, это поможет.