Java 不重复的可运行回调

Java 不重复的可运行回调,java,android,Java,Android,我想删除以前的回调,问题是mRunnable调用只调用一次,它不会重复我正在做的事情 private Runnable mRunnable = new Runnable() { @Override public void run() { System.out.println("Test ...."); } }; @Override public void onJoystickContinu

我想删除以前的回调,问题是mRunnable调用只调用一次,它不会重复我正在做的事情


private Runnable mRunnable = new Runnable() {

        @Override
        public void run() {
            System.out.println("Test ....");

        }
};

@Override
    public void onJoystickContinue(Boolean isContinue) {
        if (isContinue == true) {
            if (mHandler != null) {
                mHandler.removeCallbacks(mRunnable);
            }
            mHandler = new Handler();
            mHandler.postDelayed(mRunnable, 500);
        } else {
            if (mHandler != null) {
                mHandler.removeCallbacks(mRunnable);
            }
        }
    }

这里的问题是,在创建封闭类时,
mRunnable
只创建一次。
Runnable
实例运行并转换到“stopped”状态。因此,当您稍后重用它时,处理程序会尝试运行它,但它已经停止。这里的一个解决方案是每次重新启动时创建一个新的可运行实例,而不是反复重用同一个实例。

每次创建一个新的可运行实例,而不是反复重用同一个实例。@thomas你知道如何创建一个新对象并将其分配给变量吗?我想这就是我在第一次中所做的“是的。这里的问题是,当您创建包含类的对象时,行只执行一次。您需要重新排列您的代码,以便它在每次发布到处理程序时都会发生。