繁体   English   中英

Android Wear应用程序运行两次

[英]Android Wear app running double

我已经开始了一个非常酷的服装应用程序的开发,现在它只是一个节拍器,它会随着用户选择的节奏而振动。

我的问题是,当您退出应用程序或屏幕进入“环境模式”时,振动一直在继续,这非常好,但是当您再次打开应用程序时,它会打开一个新的“实例”(或您这样说)该应用程序,因此先前选择的振动速度会保持振动,而当您选择一个新的振动速度时,基本上会有2个速度振动。

也许这与以下事实有关:我使用新的Thread作为计时,并且Thread一直在运行。 有办法防止这种情况吗? 谢谢!

 public void buttonTempoOnClick(final View v) {
    Running = !Running;
    Button button = (Button) v;
    Thread Timer = new Thread(new Runnable() {
        public void run() {
            while (Running == true) {
                vibrate(150);
                try {
                    Thread.sleep(60000 / Tempo);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    });
    Timer.start();

(振动是指我在课程中创建的空白,可以使用。)

public void vibrate(int duration){
    Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    vibrator.vibrate(duration);
}

编辑:我已经有一个默认为false的public boolean Running ,当按下“开始”按钮时,它会切换布尔值并以while(Running == true)循环开始新的威胁。再按一次按钮就像一种魅力。

尝试在管理线程的类中设置一个变量,例如

boolean isTempoOn = true;

在您的主要活动中,在onResume()函数中,检查它是否已在运行。 如果是这样,请勿再次开始。

也许发布代码的适用部分会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM