2012-01-24 3 views
0

У меня есть приложение для сигнализации, которое должно печатать тост-сообщение каждые 1 минуту. Но это происходит только один раз, когда приложение запускается в первый раз.Проблемы в приложении Android

вот мой код:

private class ConnectivityReceiver extends BroadcastReceiver{ 
     MainActivity m= new MainActivity(); 
      private Timer mTimer; 
      private TimerTask mTimerTask; 

      @Override 
      public void onReceive(Context context, Intent intent) { 
        NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG"); 
        wl.acquire();        Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // Every 1 minute i print the tost message.      wl.release(); 


      } 
      public void SetAlarm(Context context) 
      { 
      AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
      Intent i = new Intent(context, ConnectivityReceiver.class); 
      PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); 
      am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 1, pi); // Millisec * Second * Minute 
      } 
      public void CancelAlarm(Context context) { 
      Intent intent = new Intent(context, ConnectivityReceiver.class); 
      PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0); 
      AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
      alarmManager.cancel(sender); 
      } 
        } 
+0

Вы слушаете меня L eema? – Lucifer

+0

@lucifier ya я знаю – Mercy

ответ

4

Пожалуйста, обновите ваш эта линия

am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 1, pi); 

в

am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60), 1000 * 60 * 10, pi); 

Это добавит одну минуту ваша System.currentTimeMillis(); и начнется после этого времени.

+0

тост приходит только одна минута..не каждые 1 минута – Mercy

+0

любезно помогите мне luci – Mercy

+0

Я использую ту же линию и работает здесь. вы что-то знаете, мы разрабатываем одно и то же приложение. – Lucifer

3

Только одна вещь,

в линии PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);

заменить PendingIntent sender = PendingIntent.getBroadcast(context, **someUniqueId**, intent, 0);

где UniqueID является целым числом либо и генерировать или объявить как "я ++", где я есть public static int i;

Надеюсь, что это сработает

Смежные вопросы