2014-02-22 20 views
0

我想做一個警報管理器,其中您只能設置一個警報並將其刪除。我想製作一個鬧鐘管理器......任何人都可以幫我用特定的代碼嗎?

這是我的代碼。它不工作,實際上當我設置警報時,顯示警報設置了..但它沒有給出任何通知或響應...我一次只設置一個警報並刪除它。我需要改變here..can any help pls ????

這是我的主要課程。我有兩個類叫做數據庫AlarmReceiver

public class MainActivity extends Activity { 

TimePicker myTimePicker; 
Button buttonstartSetDialog; 
TextView textAlarmPrompt; 
int i=0; 
TimePickerDialog timePickerDialog; 
String show=""; 
int RQS_1; 
PendingIntent pendingIntent; 
AlarmManager alarmManager; 
String minute,hour,purpose; 
TextView test; 

EditText et1; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    textAlarmPrompt = (TextView)findViewById(R.id.alarmprompt); 
    et1 = (EditText)findViewById(R.id.txtPurpose); 
    test = (TextView)findViewById(R.id.textView1); 
    buttonstartSetDialog = (Button)findViewById(R.id.startSetDialog); 
    buttonstartSetDialog.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      textAlarmPrompt.setText(""); 
      openTimePickerDialog(false); 

     }}); 

} 


private void openTimePickerDialog(boolean is24r){ 
    Calendar calendar = Calendar.getInstance(); 

    timePickerDialog = new TimePickerDialog(
      MainActivity.this, 
      onTimeSetListener, 
      calendar.get(Calendar.HOUR_OF_DAY), 
      calendar.get(Calendar.MINUTE), 
      is24r); 
      purpose = et1.getText().toString(); 
      hour = Integer.toString(calendar.get(Calendar.HOUR_OF_DAY)); 
      minute = Integer.toString(calendar.get(Calendar.MINUTE)); 

      /*database ob1 = new database(this); 

      ob1.Open(); 
      ob1.insert(purpose, hour, minute); 
      ob1.Close();*/ 
    timePickerDialog.setTitle("Set Alarm Time"); 

    timePickerDialog.show(); 

} 

OnTimeSetListener onTimeSetListener 
= new OnTimeSetListener(){ 

    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 

     Calendar calNow = Calendar.getInstance(); 
     Calendar calSet = (Calendar) calNow.clone(); 

     calSet.set(Calendar.HOUR_OF_DAY, hourOfDay); 
     calSet.set(Calendar.MINUTE, minute); 
     calSet.set(Calendar.SECOND, 0); 
     calSet.set(Calendar.MILLISECOND, 0); 

     if(calSet.compareTo(calNow) <= 0){ 
      //Today Set time passed, count to tomorrow 
      calSet.add(Calendar.DATE, 1); 
     } 

     setAlarm(calSet); 
    }}; 

private void setAlarm(Calendar targetCal){ 




    show = show + "\n\n\n" 
      + "Alarm is set at " + targetCal.getTime() + "\n" 
      + "\n"; 
    textAlarmPrompt.setText(show); 


     Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 
     intent.putExtra("msg", "This is Activated"); 



     pendingIntent = PendingIntent.getBroadcast(getBaseContext(), i, intent, PendingIntent.FLAG_ONE_SHOT); 

     alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 



     i++; 

} 
public void resetClicked(View aview) 
    { 
     deleteAlarm(); 
    } 

    private void deleteAlarm() 
    { 
     int p=0; 
     /*Intent intent = new Intent(getBaseContext(), alarmRemove.class); 
     pendingIntent= PendingIntent.getBroadcast(getBaseContext(),0, intent, 0);*/ 

     //alarmManager.cancel(intentArray.get(1)); 
     //et1.setText(Integer.toString(intentArray.size()));  


    } 
} 
+0

什麼不起作用?有沒有崩潰,如果是的請發佈logcat,並更具體。 – EarlOfEgo

+0

它沒有崩潰..報警正在設置..但它沒有通知收到報警 – incorporeal

+0

請指定(通過編輯問題)「不工作」。它應該做什麼?它實際上做了什麼? –

回答

0

對不起,但你的代碼沒有任何意義。當您設置鬧鐘時,您正在啓動鬧鐘接收器。首先,這不是你如何觸發廣播接收機,其次,即使你可以這樣觸發它,當第一次被設置時發出警報是沒有意義的。

請閱讀更多關於Broadcast Receivers。有人可以給你代碼,你可以剪切並粘貼到你的項目中,但這不是學習的方式。

如果你要去任何地方,你應該首先了解基本原理。

相關問題