創建方法只運行一次:
public void setAlarm(Context context, int interva) {
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, NotificationAlarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interva, pi);
}
然後創建類NotificationAlarm
public class NotificationAlarm extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
loop();
}
private void loop() {
//work
}
}
添加類AndroidManifest
<receiver android:name=".NotificationAlarm" />
調用方法的活動或服務
setAlarm(this,5000);
爲cancelAlarm試試這個:
public void cancelAlarm(Context context) {
Intent intent = new Intent(context, NotificationAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager = (AlarmManager) G.context.getSystemService(G.context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
您可以使用Alarm manager作爲 – Pankaj
在要循環的方法中添加handler.postDelayed的代碼行,將其餘代碼保持原樣,它會自動運行 – user2450263
@ user2450263您是否認爲public void run (){delayhandler.postDelayed(run,5000); } –