0

以下のシングルトンハンドラークラスがあります

public class MyHandler
{
private static Handler handler;
private static boolean isRunning;

public static Handler getHandler(Runnable myRunnable)
{
    if (handler == null)
    {
        initHandler(myRunnable);
    }
    return handler;
}


private static void initHandler(Runnable myRunnable)
{
    handler = new Handler();
    isRunning = true;
    handler.postDelayed(myRunnable, 5000);
}

public static void reRunHandler(Runnable myRunnable)
{
    isRunning = true;
    handler.postDelayed(myRunnable, 45000);
}

public static void stopMyHandler()
{
    isRunning = false;
    handler.removeCallbacksAndMessages(null);
}
}

ただし、ここから UI を更新するにはどうすればよいですか? ランナブルは私の活動の中にあるので。どうやら getHandleMessage を使用して通信することはできません。

さらにコードが必要な場合は、これをどのように使用しているかを共有できます。

4

2 に答える 2

1

とても簡単です:

new Handler(Looper.getMainLooper()).post(new Runnable() {           
    @Override
    public void run() {
        //do whatever you want on the UI thread
    }
});
于 2014-06-23T06:19:54.270 に答える