2013-07-30 37 views
0

我在android中使用多個鬧鐘進行應用,我想爲每個鬧鐘做不同的事情,我的問題是我不知道如何恢復鬧鐘的ID或區分每個鬧鐘在警報類。 這是我的代碼:Android AlarmManager問題

//Activate the alarm 
public void ActivateAlarm(int num) { 

    int seconds =Preferences.getTime(num); 

    myIntent[num] = new Intent(Settings.this, 
      Alarm.class); 

    pendingIntent[num] = PendingIntent.getService(Settings.this, num, 
      myIntent[num], 0); 

    alarmManager[num] = (AlarmManager) getSystemService(ALARM_SERVICE); 

    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.add(Calendar.SECOND, 10); 
    alarmManager[num].setRepeating(AlarmManager.RTC_WAKEUP, 
      calendar.getTimeInMillis(), 
      seconds * 1000, pendingIntent[num]); 
    Toast.makeText(Settings.this, "Alarm"(num+1)+"activated",Toast.LENGTH_LONG) 
    .show(); 

} 

類報警

public class Alarm extends Service implements Runnable { 
public int alarmID; 
private static Thread thread;; 


@Override 
public void run() { 
    // TODO Auto-generated method stub 
    handler.sendEmptyMessage(1); 

} 

@Override 
public IBinder onBind(Intent arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 


@SuppressLint("HandlerLeak") 
private Handler handler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
    // Toast.makeText(Alarm.this, Alarm.thread.getName(), Toast.LENGTH_LONG).show(); 
     //ReadFile.readFile(Integer.parseInt(thread.getName())); 

     displayNotification(); 
    } 
}; 

private void displayNotification() { 
    //different notification for each alarm 
} 

public void onStart(Intent intent, int startId) { 
    // TODO Auto-generated method stub 
    //super.onStart(intent, startId); 
    thread = new Thread(this); 
    thread.start(); 


} 
public void setIDAlarm(int pos){ 
    this.alarmID=pos; 
} 



} 

謝謝。

+0

您可以使用意圖.setAction(「MyAction1」),然後用intent.getAction()。equals(「MyAction1」){做某事...}過濾你的報警。 – JanBo

+0

它的工作非常感謝你。 – Fsop

回答

1

,因爲它爲你工作我會後作爲回答別人:

您可以使用

intent.setAction("MyAction1") 

,然後篩選報警

intent.getAction().equals("MyAction1") { do something ...}