2011-02-01 14 views
0

ここのコードはうまくいきます。それは私のギャラリーで特定の時間に画像を変更しますが、私はこれが最良のアプローチだとは思わない、特にthread.sleep()を使用する。どのようにすればよいコードを書くことができますか?私は何が欠けていますか? ..特定の時間にアンドロイドギャラリーで画像を変更する...

@Override おかげでボイドonResume()真{ paraThread =保護。 workThread =新しいLooperFoto( "MyWorkThread");workThread.setPriority(Thread.MIN_PRIORITY);workThread.start(); super.onResume();限り.sleepingれるスレッドとして }

@Override 
protected void onStop() { 
    Log.i(TAG, "thread state: " + workThread.getState()); 
    paraThread = false; 
    workThread = null; 
    super.onStop(); 
} 


class LooperFoto extends HandlerThread { 

    public LooperFoto(String name) { 
     super(name); 

    } 

    @Override 
    public void run() { 
     while (paraThread) { 
      try { 
       this.sleep(2000); 
       mudaFoto.sendMessage(new Message()); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 

     } 
    } 

} 

Handler mudaFoto = new Handler() { 
    public void handleMessage(Message msg) { 
     Random generator = new Random(); 
     int randomIndex = generator.nextInt(thumbImgGallery.getAdapter() 
       .getCount()); 
     thumbImgGallery.setSelection(randomIndex); 
    }; 
}; 

答えて

0

()がメイン(UI)スレッドではありません、あなたは問題ないはずです。何を心配していますか?

+0

私はthread.spleep()についてちょっと心配していましたが、問題がなければ問題ありません。ありがとうございました – user569873

+0

私はあなたの 'スレッド'が眠っている間中断されるリスクを実行すると思う。 –

関連する問題