2014-12-13 58 views
1
while循環

我正在開發一個應用程序,將在早上播放某些聲音在9:15AM10:30AM, 我與已經播放聲音部分完成,但同時監視我現在面臨的問題目前的android系統時間。如何保持監測時間沒有在Android中

下面是我在做什麼,

我有哪裏9:15 AM至10:30 AM存儲爲字符串數組。 雖然我使用Java日曆類來獲取系統當前時間,

Calendar cTime = Calendar.getInstance(); 

    public String currentTime() { 
     String hour = cTime.get(Calendar.HOUR) + ""; 
     String mins = cTime.get(Calendar.MINUTE) + ""; 
     return hour+""+mins+"AM"; 
    } 

和我玩使用此代碼的聲音,

public void playSound() { 

    MediaPlayer player = MediaPlayer.create(this, R.raw.s); 
    player.start(); 
    player.setOnCompletionListener(new OnCompletionListener() { 

     @Override 
     public void onCompletion(MediaPlayer mp) { 
      mp.release(); 
     } 
    }); 
} 

的問題是,

如果是早上9:15,我運行應用程序,然後應用程序會播放聲音,或者如果是早上10:30,我運行該應用程序,則應用程序將播放聲音,但這不是我想要的, 我希望我的應用程序能夠始終監視時間,並且wh在上午9:15或上午10:30,無論應用程序是否運行,聲音都應播放。

我嘗試了一種方法,將當前時間與上午10:30或上午9:30在一個while循環中進行比較,但它會掛斷我的電話,這似乎是個不好的主意。 我想不出任何其他方式來監控時間,請給我一些建議。

回答

0

我想你應該嘗試這些代碼(Android的API)的

使用AlarmManager類來調度和執行動作/你想它是否正在運行或不你的Android應用程序的狀態,無論執行操作。

但運用這個概念,你應該通過更多的細節關於這個類,因爲它提供了兩種類型的報警經過的實時和實時時鐘的..

,你將不得不使用廣播接收器接收之前意向。

,如果你想使用的循環,你應該使用如下代碼

時間t =新的時間(比Java日曆類更好)(); t.setToNow();

或更好的代碼將因爲現在你將得到你的用戶的當前時區,所以在這裏你去;

時間t = new Time(Time.getCurrentTimezone()); t .setToNow();

相關問題