2012-01-24 11 views
0

私は1分ごとにトーストメッセージを出力する警報アプリケーションを持っています。しかし、初めてアプリケーションを実行するときは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

あなたは私を聴いていますかイェマ? – Lucifer

+0

@lucifierよろしくお願いします – Mercy

答えて

4

これは、1分あなたのSystem.currentTimeMillis();を追加すると、その時間後に開始されます

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

にあなたのこのライン

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

を更新してください。

+0

トーストは1分に1分しか来ません – Mercy

+0

親切に私を助けてくださいluci – Mercy

+0

私は同じラインを使用しており、ここで働いています。あなたは何かを知っている、私たちはどちらも同じアプリケーションを開発する。 – Lucifer

3

UNIQUEID iはpublic static int i;

ここで "私は++" としてuが生成したり、宣言のいずれかの整数 ただ一つのこと、ラインで

PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);

PendingIntent sender = PendingIntent.getBroadcast(context, **someUniqueId**, intent, 0);

と交換してください

希望がこれで動作します

関連する問題