这段代码有没有问题 我现在的heart_rate值不正常了 一些无用代码省略了

安卓如下代码:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mHeartHandler.postDelayed(mHeartRunnable, 3000);
super.mHandler=new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(final Message msg) {

            switch (msg.what) {
                                case:20
                                heart_rate=(int)msg.obj;
                    Log.e(TAG, "处理后心率"+heart_rate);
                    heartRate.setText(heart_rate);
                    break;
                                            }
                                            return false;
                                            }
                                            });
            }

            然后同样在这个活动中:
            private Handler mHeartHandler = new Handler();
            private Runnable mHeartRunnable = new Runnable() {
    public void run() {
                                        .....
                                         heart_rate = SumNCount * 60;  //我计算出来想要显示的数值
                                        Message message = new Message();
                                        message.what = 20;
                                        message.obj=heart_rate;
                                        ECGActivity.this.mHandler.sendMessage(message); //ECGAcivity是当前活动
                                         mHeartHandler.postDelayed(mHeartRunnable, 3000); 
        }
};


                                        这样写有没有问题  我现在heart_rate的值不太正常 求大神.
                                        mHeartRunnable是我新加的一个线程

下断点调试下heart_rate的值

并且好像执行了两次

10-03 09:45:05.329 30098-30098/com.example.chenlei.ecg32 E/ECGActivity: 此线程 main
30S后计算心率 84
处理后心率84
10-03 09:45:05.464 30098-30098/com.example.chenlei.ecg32 E/ECGActivity: 此线程 main
30S后计算心率 4
处理后心率4