警报管理器示例

警报管理器示例

我想在我的项目中实现一个调度函数。因此,我搜索了一个警报管理程序,但找不到任何例子。

有人能帮我做一个基本的警报管理程序吗?


慕虎7371278
浏览 500回答 4
4回答

子衿沉夜

我尝试了XXX的解决方案,当它开始工作的时候,它在某个时候停止了工作。这个onReceive再也没接到过电话。我花了好几个小时想弄清楚到底是什么。我意识到Intent无论出于什么神秘的原因不再被称为。为了解决这个问题,我发现您确实需要为清单中的接收方指定一个操作。例子:<receiver&nbsp;android:name=".Alarm"&nbsp;android:exported="true"> &nbsp;&nbsp;&nbsp;&nbsp;<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="mypackage.START_ALARM"&nbsp;> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</action> &nbsp;&nbsp;&nbsp;&nbsp;</intent-filter></receiver>请注意,名称是".Alarm"随着时间的推移。在XXXsetAlarm方法,创建Intent详情如下:Intent&nbsp;i&nbsp;=&nbsp;new&nbsp;Intent("mypackage.START_ALARM");这个START_ALARM信息可以是你想要的任何东西。我给它起这个名字只是为了演示。我没有看到在清单中定义的接收者没有指定操作的意图筛选器。按照XXX指定的方式创建它们,似乎有点虚假。通过指定操作名,Android将被迫创建BroadcastReceiver使用对应于操作的类。如果您依赖于上下文,请注意android有几个不同的对象,它们都称为上下文,可能不会导致您的BroadcastReceiver创造出来的。强迫Android只使用动作消息来创建类的实例要比依赖可能永远无法工作的不确定的上下文要好得多。

慕桂英3389331

下面是一个相当独立的例子。5秒后按钮会变红。&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;SetAlarm() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;Button&nbsp;button&nbsp;=&nbsp;buttons[2];&nbsp;//&nbsp;replace&nbsp;with&nbsp;a&nbsp;button&nbsp;from&nbsp;your&nbsp;own&nbsp;UI &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BroadcastReceiver&nbsp;receiver&nbsp;=&nbsp;new&nbsp;BroadcastReceiver()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override&nbsp;public&nbsp;void&nbsp;onReceive(&nbsp;Context&nbsp;context,&nbsp;Intent&nbsp;_&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;button.setBackgroundColor(&nbsp;Color.RED&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.unregisterReceiver(&nbsp;this&nbsp;);&nbsp;//&nbsp;this&nbsp;==&nbsp;BroadcastReceiver,&nbsp;not&nbsp;Activity &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.registerReceiver(&nbsp;receiver,&nbsp;new&nbsp;IntentFilter("com.blah.blah.somemessage")&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PendingIntent&nbsp;pintent&nbsp;=&nbsp;PendingIntent.getBroadcast(&nbsp;this,&nbsp;0,&nbsp;new&nbsp;Intent("com.blah.blah.somemessage"),&nbsp;0&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AlarmManager&nbsp;manager&nbsp;=&nbsp;(AlarmManager)(this.getSystemService(&nbsp;Context.ALARM_SERVICE&nbsp;)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;alarm&nbsp;to&nbsp;fire&nbsp;5&nbsp;sec&nbsp;(1000*5)&nbsp;from&nbsp;now&nbsp;(SystemClock.elapsedRealtime()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manager.set(&nbsp;AlarmManager.ELAPSED_REALTIME_WAKEUP,&nbsp;SystemClock.elapsedRealtime()&nbsp;+&nbsp;1000*5,&nbsp;pintent&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;}不过,请记住,即使应用程序没有运行,AlarmManager也会触发。如果你调用这个函数并点击Home按钮,等待5秒,然后回到你的应用程序中,按钮就会变红。我不知道如果你的应用程序没有在内存中,你会得到什么样的行为,所以要小心你试图保存什么样的状态。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android