2013-10-21 42 views
0

我有一個班級需要時間從用戶選擇時間,時間選擇器操作應與當前電話時間進行比較,當前電話時間與用戶設置相同時,該應用程序應該觸發一個名爲mediaplayer的媒體播放器,就像一個鬧鐘。現在的問題是我無法使用當前電話時間檢查超過一次的時間選擇器時間。我如何檢查一次以上的時間

import java.util.Calendar; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.media.MediaPlayer; 
    import android.os.Bundle; 
    import android.os.Handler; 
    import android.view.Menu; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.TimePicker; 
    import android.widget.Toast; 

public class Sabah2 extends Activity { 
Button btn; 
Intent i; 
int hour,min; 
static TimePicker picker; 
private Handler hh; 
private Runnable rr; 
Calendar c = Calendar.getInstance(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sabah2); 
    final MediaPlayer mp = MediaPlayer.create(Sabah2.this, R.raw.salam); 
    picker = (TimePicker) findViewById(R.id.timePicker1); 
    btn = (Button) findViewById(R.id.sabah_save); 


    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      hour=picker.getCurrentHour(); 
      min=picker.getCurrentMinute(); 

      Toast.makeText(getApplicationContext(), "The Alarm has been    
    Activated At "+hour+":"+min, Toast.LENGTH_SHORT).show(); 


     } 
    }); 
    if(hour==c.get(Calendar.HOUR)&&min==c.get(Calendar.MINUTE)) 
{ 
mp.start(); 
} 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.sabah2, menu); 
    return true; 
} 

} 

回答

0

必須設置在timepicker.If時的時間與當前時間相匹配,就會觸發報警並播放媒體播放器.something這樣

AlarmManager alarmanager=(AlarmManager) getSystemService(Context.ALARM_SERVICE); 
TimePicker ti = (TimePicker) findViewById(R.id.time_alarm); 
ti.setOnTimeChangedListener(new OnTimeChangedListener() { 

     public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { 
      // TODO Auto-generated method stub 
      selectedhour = hourOfDay; 
      selectedminute = minute; 
      count = 2; 
     } 
    }); 

現在轉換selectedhour和selectedminute的alarmanager毫秒,並將其設置爲報警管理員

alarmanager.set(AlarmManager.RTC_WAKEUP, time in millisec,pndingIntent) ; 
+0

你是什麼意思的待決intnet? –

+0

mmmmmmmm thx你的答案,但什麼類型的時間毫秒什麼是時間選擇器和這個之間的關係? –

+0

@BasilBattikhi Alarmanager需要毫秒的時間,所以你需要將時間選擇器中的選定時間轉換爲milisec –

0

你必須使用一個服務檢查此服務檢查的時間與當前time.This會在後臺time.In,因此將嘗試檢查時間的情況下,即使你的AP沒有運行。

相關問題