2011-07-15 1 views

答えて

18

ハンドラを使用し、postDelayed()などのメソッドを使用してハンドラを使用して、単純なメッセージまたはRunnableを送信します。

例えば、メッセージとランナブル受信するハンドラ・オブジェクト定義:定義

private Handler mHandler = new Handler(); 

をRunnableを:のRunnableはmsで指定された遅延後にハンドラに送信させる

private Runnable mUpdateTimeTask = new Runnable() { 
    public void run() { 
     // Do some stuff that you want to do here 

    // You could do this call if you wanted it to be periodic: 
     mHandler.postDelayed(this, 5000); 

     } 
    }; 

mHandler.postDelayed(mUpdateTimeTask, 1000); 

seの複雑さハンドラにRunnableを指定すると、メソッドsendEmptyMessageDelayed()を使用して、非常に簡単にメッセージを送信することもできます(空のメッセージでも可能です)。 MainActivity

+0

感謝:から

@Override protected void onCreate(final Bundle savedInstanceState) { ... Config.context = this; ... } ... public void execute_method_after_delay(final Callable<Integer> method, int millisec) { final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { try { method.call(); } catch (Exception e) { } } }, millisec); } 

任意のクラスの静的メソッドを使用して!私は 'new Handler()を追加しました。sendEmptyMessageDelayed(1,2500);'しかし、 'int what'の値が何であるかはわかりません。 – austin

+2

あなたが提供するリンクはもう利用できません... – amalBit

+0

OK、リンクが削除されました。私は答えがまだそれ自身であると思う。 – Trevor

0

静的コンテキストから呼び出し遅れ方法

public final class Config { 
    public static MainActivity context = null; 
} 

private static void a_static_method() 
{ 

    int delay = 3000; 
    Config.context.execute_method_after_delay(new Callable<Integer>() { 
     public Integer call() { 
      return method_to_call(); 
     } 
    }, delay); 


} 

public static Integer method_to_call() 
{ 
    // DO SOMETHING 
関連する問題