簡體   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