Я использую андроид ViewPager: http://developer.android.com/reference/android/support/v4/view/ViewPager.htmlAndroid Фрагменты и отдельные темы
Этот класс позволяет в основном пощечину кучу Фототуры или фрагментов в группе и листать их легко. Моя проблема возникает, когда я пытаюсь создать отдельный поток для случайного перетасовки через представления.
Я продлил нить, которая назовет setCurrentItem на моем ViewPager, через который я прошел через аргумент. Когда я сделал, что я получил это:
java.lang.IllegalStateException: Must be called from main thread of process
я понял все, что я должен был бы сделать, чтобы исправить это было бы вызвать метод из моего activityfragment поэтому я создал changePageFromActivity делать грязную работу и называется, что, передавая мой активность в моей теме. Но это тоже не сработало. Ниже приводятся полные трассировки стеки:
FATAL EXCEPTION: Thread-11
java.lang.IllegalStateException: Must be called from main thread of process
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1392)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:160)
at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:433)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:405)
at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:397)
at com.lyansoft.music_visualizer.MusicVisualizerActivity.changePageFromActivity(MusicVisualizerActivity.java:144)
at com.lyansoft.music_visualizer.ShuffleThread.run(ShuffleThread.java:38)
После выполнения некоторых исследований я понял, что фрагменты легко разрушаются и приводят в другом потоке так, чтобы предотвратить любые проблемы ViewPager только убедился, что метод, который я хотел был быть вызван из основной вид деятельности.
Так что мой вопрос:
Можно ли внедрить что-то вдоль линий
run() { while(condition) { methodIWantHere(); sleep(timeout); } }
внутри нити моего основного вида деятельности без нарушения его?
ИЛИ
Что такое лучший шаблон дизайна для достижения эффекта я хотел бы? (который должен изменить вид с согласованными интервалами)
Это именно то, что я искал! Спасибо! – ebolyen