Tag: alarmmanager

多个警报在引导后重新启动

我正在设置多个警报,以便在特定日期重复这些警报。 现在我听说Android不会在重启时保存警报。 我还读到当BOOT_COMPLETED重新安排所有警报时应该使用BroadcastReceiver 。 但是,如果我每天有5个警报=在不同日期安排了大约35个警报,如何告诉BroadcastReceiver在重新启动后重新安排警报。 我需要将它们存储在数据库中吗? 我如何存储它们? 或者我需要BOOT_COMPLETED吗? 这种事有什么例子吗? 我找不到它。 这是我目前用于设置警报和简单接收器类的内容。 我在这里使用的是Service而不是BroadcastReceiver,因为我听说BR应该只用于处理短的事情,将来我将不得不使用一些长的声音片段。 private void setAlarm(){ Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); PendingIntent pendingintent = PendingIntent.getService(getBaseContext(), 2, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + sveskupa, pendingintent); Toast.makeText(getBaseContext(), “Alarm is set”, Toast.LENGTH_LONG).show(); } AlarmReceiver类: public class AlarmReceiver extends Service{ @Override public IBinder onBind(Intent intent) […]

AlarmManager从不在AlarmReceiver / BroadcastReceiver中调用onReceive

我仍然无法触发我的AlarmReceiver类’onReceive方法。 这个实现有什么问题吗? 所有这一切应该是等待一段时间(最好是6天),然后弹出一个通知。 (你能相信没有内置系统吗?crontab任何人!?) MyActivity和BootReceiver都在必要条件下设置了警报。 AlarmService启动通知。 并且AlarmReceiver 应该捕获警报并启动AlarmService,但它从未捕获过该广播,并且无论我做什么都不会。 哦,我一直在测试我的Droid X,2.3.4。 项目是针对API 8构建的。 PS大部分内容改编自http://android-in-practice.googlecode.com/svn/trunk/ch02/DealDroidWithService/ ———— MyActivity.java ———— public class MyActivity extends Activity implements SensorEventListener { private void setupAlarm() { Log.i(TAG, “Setting up alarm…”); AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, new Intent(context, AlarmReceiver.class), 0); // Get alarm trigger time from prefs Log.i(TAG, “Getting […]

重新启动设备后,频繁发送短信也会在打开时再发送短信

我经常发送短信,同时重新启动我的设备再发送短信,同时我们“开启”。之后发送短信正确的间隔。但是当我们打开我们的设备时再发送短信。 public class BootCompletedIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context ctxt, Intent i) { try { scheduleAlarms(ctxt); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @SuppressLint(“SimpleDateFormat”) static void scheduleAlarms(Context ctxt) throws java.text.ParseException { String share_pref_file = “IMS”; SharedPreferences prefs = ctxt.getSharedPreferences(share_pref_file, Context.MODE_PRIVATE); String number = prefs.getString(“extraSmsNumber”, “”); String message= […]

Android AlarmManager – 从其他活动取消

我有一个家庭作业计划器应用程序,我想创建一个警报,以提醒用户前一天晚上/在某个时间。 我有一个名为AddNewHomework的Activity,用户创建一个新的家庭作业项目并将其添加到数据库中。 然后调用此代码。 Intent i = new Intent(this, AlarmNotificationReceiver.class); i.putExtra(“title”, title); PendingIntent pi = PendingIntent.getBroadcast(this.getApplicationContext(), (int) id, i, 0); AlarmManager mAlarm = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); mAlarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10 * 1000, pi); 这将创建一个新的警报,在10秒内触发并创建通知。 我的问题是我有另一个名为HomeworkList的活动,它包含一个ListView并显示存储在数据库中的所有家庭作业。 如果用户长按一个然后他们可以选择删除它,但是从数据库中删除它不会删除警报。 我已经找到了可以用来删除警报的代码但是我没有找到任何可以让我理解如何从这个不同的活动中取消警报的内容。 我知道我需要使PendingIntent相同,但是我怎么做,因为我无法从其他类访问上下文。 (我不认为)。

如何使用AlarmManager在AsyncTask中下载失败时运行重试

我使用AlarmManager来运行试图从Web下载文件的服务。 如果失败了,我想在5分钟内重试该服务。 在服务内部我运行AsyncTask来运行我的代码。 据我所知,我可以判断它是否失败的唯一方法是来自onPostExecute() 。 再次实施该服务重试的最佳方法是什么?

为什么在设定通知时间时提高剂量通知?

我使用时间选择器来设置用户通知的时间。 我使用过警报管理器和通知构建器。 我在按钮的clickListener上调用了setAlarm方法来保存数据。 因此,当调用此setAlarm方法时,Notification会同时引发,并在用户设置时引发。 我保存数据时不希望它被引发。 任何人都可以告诉为什么会这样吗? setAlarm方法 @SuppressLint(“NewApi”) private void setAlarm(Calendar targetmCalen) { AlarmManager alarmMgr; PendingIntent alarmIntent; alarmMgr = (AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(getApplicationContext(), NotificationReceiver.class); alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0); Toast.makeText(getBaseContext(), “call alarmManager.setExact()”, Toast.LENGTH_LONG).show(); intent.putExtra(“title”,eventTitle); alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, targetmCalen.getTimeInMillis(), AlarmManager.INTERVAL_DAY, alarmIntent); ComponentName receiver = new ComponentName(getApplicationContext(),NotificationReceiver.class); PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); } NotificationReceiver […]

上下文无法解决

我正在尝试使用一种方法来安排此处描述的月度警报: 如何实施年度和月度重复警报? 但是我在线上遇到两个错误: AlarmManager am = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); 和 PendingIntent sender = PendingIntent.getBroadcast(context, 声明“上下文无法解决”和“上下文无法解析为变量” …关于如何解决这个问题的任何建议? public class Alarm extends Service { // compat to support older devices @Override public void onStart(Intent intent, int startId) { onStartCommand(intent, 0, startId); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // your method to check […]

无法使AlarmManager和多个通知工作

好的..我想弄清楚三个问题。 我无法让AlarmManager通知我 我想为每个通知程序显示不同的消息 如果有人能帮助我,我会很高兴,我不会在这里发布这个,所以我可以得到代码,我已经在这里工作了2天所以我想我会问专家。 如果我能找到一个会检查以下代码的人,请表明我的错误并指出我的方向来纠正这些错误。谢谢你。 这是我的通知程序类,我设置了我希望alarmManager发送警报的日期和时间。 public class Notifier extends Activity { private PendingIntent pendingIntent; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_the_beginning); Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); Calendar calendar3 = Calendar.getInstance(); Calendar calendar4 = Calendar.getInstance(); calendar1.set(Calendar.DAY_OF_WEEK, 1); // Sunday calendar2.set(Calendar.DAY_OF_WEEK, 4); // Wednesday calendar3.set(Calendar.DAY_OF_WEEK, 6); // Friday calendar4.set(Calendar.DAY_OF_WEEK, 5); // Thursday […]

Android通知应用无法正常运行

我正在开发一个Android应用程序,其中一部分涉及提醒用户做某事的通知。 此通知在指定时间每12小时重复一次。 我正在使用AlarmManager来安排闹钟,并且我还包含了在设备启动时启动我的警报服务的代码。 这是我的java类: MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SharedPreferences preferences = PreferenceManager .getDefaultSharedPreferences(this); SharedPreferences.Editor editor = preferences.edit(); int i = preferences.getInt(“numberoflaunches”, 1); if (i < 2) { alarmMethod(); i++; editor.putInt("numberoflaunches", i); editor.commit(); } } private void alarmMethod() { Intent […]

简单的AlarmManager示例,用于在10分钟内触发活动

我发现了许多类似的问题,但它们太复杂了(代码太多),至少我认为。 可以用几行代码完成这件事吗? 我想在10分钟(比方说)分钟开一个活动,就是这样。 谢谢。