Android des Fragments et des Threads Séparés

Je suis en utilisant le android ViewPager : http://developer.android.com/reference/android/support/v4/view/ViewPager.html

Cette classe permet essentiellement de gifler un tas de points de Vue ou des Fragments dans un groupe et une page d'eux facilement. Mon problème survient lorsque je tente de créer un thread séparé de façon aléatoire aléatoire par le biais de la vue.

J'ai étendu un thread qui appellent setCurrentItem sur mon ViewPager que j'ai passé à travers un argument. Quand je l'ai fait, j'ai reçu ceci:

java.lang.IllegalStateException: Must be called from main thread of process

J'ai pensé à tous j'aurais à faire serait d'appeler une méthode à partir de mon activityfragment j'ai donc créé changePageFromActivity pour faire le sale travail et, par passage de mon activité à mon thread. Mais cela ne fonctionne pas non plus. Ci-dessous est le full stack trace:

 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)

Après avoir fait quelques recherches, j'ai compris que les Fragments sont facilement détruits et le résultat dans un autre thread, afin d'éviter tout problème ViewPager juste fait en sorte que la méthode que je voulais devait être appelée à partir de l'activité principale.

Donc ma question est:

Est-il possible d'injecter quelque chose le long des lignes de

run() { while(condition) { methodIWantHere(); sleep(timeout); } }

à l'intérieur de mon activité principale de fil sans la perturber?

OU

Quel est le meilleur modèle de conception pour obtenir l'effet que je voudrais? (ce qui est de changer le point de vue conforme à des intervalles spécifiés)

OriginalL'auteur ebolyen | 2012-05-28