Articles of alarmmanager

如何在Android中设置闹钟?

已经回答了这个问题以便于解决方案请检查一下 以下是我的代码可以任何正文请告诉我为什么它不起作用。我从本教程中学到了它。 但它没有任何帮助将是可以理解的。 我的代码是 import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.ListActivity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Toast; public class Notify extends Activity { Button btn; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) […]

Android – 了解一天中的哪些时段

我想使用和alarmManager设置重复闹钟每小时,每小时一次。 我知道如何每小时设置一个重复闹钟,但不知道如何从小时开始实际设置它,我需要知道下面’whatTime’variables的这个值。 AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME, whatTime, 1*60*60*1000, operation); 此外,我希望能够设置一个标志,例如 – 如果时间恰好在白天4到8之间,执行一些操作,否则不要打扰。 所以我真的需要知道如何找出一天的时间,有人能告诉我该怎么做吗? 非常感谢

AlarmManager和ScheduledExecutorService之间的区别

除了设置和准确的时间(即午夜)与设置延迟(即24小时)之外,使用AlarmManager和ScheduledExecutorService定期运行任务有什么区别? 就我而言,我需要运行一些代码来每晚检查新数据,并在有新数据时创建新通知。 谢谢!

AlarmManager和BroadcastReceiver的LocalNotification未在Android O(oreo)中启动

您好我已经在SDK 26之前在机器人上运行了我的本地通知 但是在Android O中我收到了以下警告,广播接收器没有被解雇。 W/BroadcastQueue: Background execution not allowed: receiving Intent { act=package.name.action.LOCAL_NOTIFICATION cat=[com.category.LocalNotification] flg=0x14 (has extras) } to package.name/com.category.localnotifications.LocalNotificationReceiver 从我所看到的广播接收器在Android O中受到更多限制,但如果是这样,即使主要活动没有运行,我应该如何调度广播呢? 我应该使用服务而不是接收器吗? 这是AlarmManager启动代码: public void Schedule(String aID, String aTitle, String aBody, int aNotificationCode, long aEpochTime) { Bundle lExtras = new Bundle(); lExtras.putInt(“icon”, f.getDefaultIcon()); lExtras.putString(“title”, aTitle); lExtras.putString(“message”, aBody); lExtras.putString(“id”, aID); lExtras.putInt(“requestcode”, aNotificationCode); Intent lIntent = […]

如何使用Alarm Manager计划任务

我是Android新手。 我正在开发一个应用程序,我需要安排将来执行的任务。 我已经阅读了有关AlarmManager的内容,并了解到我们可以使用AlarmManager完成此任务。 任何人都可以告诉我一些教程或任何来源我在哪里可以得到的东西。

如何在Android中运行后台活动

在我的应用程序中,我需要在一定的时间间隔后向用户发送文本消息。 为此,我需要在后台运行消息发送代码。 我正在使用闹钟管理器在特定时间开始活动。怎么办? 还有另一种方法吗?

Android AlarmManager setExact()不准确

我需要每10分钟计划一次任务。 在Lollipop和更高版本中, setRepeating()是不精确的,我使用setExact()和(在警报触发时)我在10分钟内设置了新的确切警报。 private void setAlarm(long triggerTime, PendingIntent pendingIntent) { int ALARM_TYPE = AlarmManager.ELAPSED_REALTIME_WAKEUP; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { alarmManager.setExact(ALARM_TYPE, triggerTime, pendingIntent); } else { alarmManager.set(ALARM_TYPE, triggerTime, pendingIntent); } } triggerTime计算SystemClock.elapsedRealtime() + 600_000; 当警报响起时,首先我会计划新警报,然后才会执行我的计划任务。 setAlarm(); mySheduledTask; 我的清单中有WAKE_LOCK权限。 当我在Android 4上测试它时 – 它工作得很完美(偏差可能是12-15 毫秒 )。 但是当我在小米Redmi Note 3 Pro(5.1.1)上运行应用程序时 – 偏差可能长达15秒! 例如,我在我的日志文件中看到:第一次运行是在1467119934477(RTC时间),第二次是在1467120541683.差异是607_206毫秒,而不是600_000 ,因为它是计划好的! 我错过了什么? 什么是模拟系统警报行为的方法(它是可以描述我的大头钉的最接近的用例)? PS。 我使用IntentService […]

如何在android中停止警报

在我的主要活动中有一个按钮。 在它的onclick监听器我调用function来设置闹钟。闹钟正在工作,但我无法阻止它。可以帮助我一些人 MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { setalarm(); } }); } private void setalarm() { Calendar cal=Calendar.getInstance(); // cal.set(Calendar.MONTH,6); // cal.set(Calendar.YEAR,2013); // cal.set(Calendar.DAY_OF_MONTH,12); cal.set(Calendar.HOUR_OF_DAY,18); cal.set(Calendar.MINUTE,32); Intent intent = new Intent(this, Mote.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 1253, […]

android如何比较未决意图

PendingIntent.FLAG_NO_CREATE的文档内容如下: 指示如果描述的PendingIntent尚不存在的标志,则只返回null而不是创建它。 我的问题:用什么标准来比较PendingIntents? 我猜这个标志使用了PendingIntent.equals ,但是我不确定该函数使用的是什么标准。 它是使用动作,requestCode,类别,额外(我猜不是)等? 语境: 如果我的警报尚未设置,我想以待定意图启动警报。 具体来说,我正在听这个答案 。 Intent i = new Intent(applicationContext, MyService.class); i.setAction(“myAction”); PendingIntent pi = PendingIntent.getService(applicationContext, /*requestCode*/0, i, PendingIntent.FLAG_NO_CREATE); if (pi != null) { AlarmManager alarmMgr = (AlarmManager)applicationContext.getSystemService(Context.AlarmService); alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_HOUR, AlarmManager.INTERVAL_HOUR, pi); }

AlarmManager无法正常工作

我需要在10秒后启动活动AlarmReceiver (例如)。 我需要在不运行应用程序的情况下激活它。 但无论应用程序是否运行, AlarmReceiver都不会被调用。 有什么建议么? Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 111, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); //alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() //+ (10 * 1000), pendingIntent); Toast.makeText(this, “Alarm set”, Toast.LENGTH_LONG).show();