ViewPager にカスタム ビューとスピナーをトップ バーに組み込んだフラグメントがあります。ビューページャーでページを変更するたびに、db からスピナーの文字列を更新する必要があります。これを行うには、viewPager リスナーの onPageSelected で、データベースからデータを取得するスレッドを起動し、スピナーのアダプターを runOnUiThread 経由で更新します。問題は、スピナーのアダプターに対して呼び出された notifyDataSetChanged() がビューページャーに遅れることです。いくつかのビューを再構築する必要がありますが、少し遅れます。
@Override
public void onPageSelected(final int pos) {
new Thread(new Runnable() {
@Override
public void run() {
...
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
mSpinnerAdapter.notifyDataSetChanged();
}
});
}
}).start();
}
これを解決するには?優先度が最も低いメインスレッドでコードを実行することは可能ですか?