2016-11-24 41 views
0

Switch onCheckedChanged(CompoundButton buttonView, boolean isChecked)メソッドで重労働をしています。つまり、私はGoogle Maps Cluster管理を行っています(値に基づいてクラスタ項目をフィルタリングする)。Android Switch - onCheckedChangeListenerを呼び出す前にUIの切り替えを切り替える方法

@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    // memory heavy stuff starts happening here 
} 

私の問題は、私は、スイッチはそのUIの変更(トグル+色の変化を)行われた後に重いものが起こることをしたいということです。それ以外の場合、UIは非常に遅いです。 私はクラスタを扱っているので、クラスタがメイン(UI)スレッド上に描画されているため、この重いものを別のスレッドで実行することはできません。

質問:OnCheckedChangeメソッドが実行された後、UIがスイッチを終了した後にonCheckedChangeを呼び出す方法はありますか?

答えて

0

チェックボックスの選択の変更にいくつかのタスクを実行したい場合は、

`onCheckedChanged(CompoundButton buttonView、ブールにisChecked)

を使用することができますが、これはあなたがの状態を変更するたびにトリガーされる覚えていますかcheckbox.setChecked(true)を使用してプログラマチックにチェックボックスをオンにします。

ユーザがボタンをクリックしたときに通知するには、チェックボックスでonClickListenerを使用することをお勧めします(しかし、あなたの要件に完全に依存します)。 チェックボックスの実行を遅らせたい場合は、このようにブロックします。

new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
// memory heavy stuff starts happening here 
     } 
    },DELAY_IN_MILLISECONDS); 
+0

ありがとうございます、ここで同じ参照が見つかりましたhttp://stackoverflow.com/questions/21380951/android-sleep-wait-delay-functionまた、スイッチはトグルするのに300ms必要でした。 – KasparTr

関連する問題