2013-07-30 3 views
0

Я делаю и приложение в android, используя несколько сигналов тревоги, и я хочу делать разные вещи для каждого сигнала тревоги, моя проблема в том, что я не знаю, как восстановить идентификатор тревоги или дифференцировать каждый сигнал тревоги в классе сигнализации. Это мой код:Проблемы с 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(); 

} 

класс Alarm

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»), а затем отфильтруйте свои сигналы тревоги с помощью намерения.getAction(). equals («MyAction1») {сделайте что-нибудь ...} – JanBo

+0

Это сработало вам большое спасибо. – Fsop

ответ

1

, поскольку он работал для вас я выложу как ответ для других:

Вы можете использовать

intent.setAction("MyAction1") 

, а затем фильтровать ваши сигналы тревоги с

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