为了账号安全,请及时绑定邮箱和手机立即绑定

警报管理器示例

警报管理器示例

慕虎7371278 2019-05-30 11:06:23
警报管理器示例我想在我的项目中实现一个调度函数。因此,我搜索了一个警报管理程序,但找不到任何例子。有人能帮我做一个基本的警报管理程序吗?
查看完整描述

4 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

我尝试了XXX的解决方案,当它开始工作的时候,它在某个时候停止了工作。这个onReceive再也没接到过电话。我花了好几个小时想弄清楚到底是什么。我意识到Intent无论出于什么神秘的原因不再被称为。为了解决这个问题,我发现您确实需要为清单中的接收方指定一个操作。例子:

<receiver android:name=".Alarm" android:exported="true">
    <intent-filter>
        <action android:name="mypackage.START_ALARM" >
        </action>
    </intent-filter></receiver>

请注意,名称是".Alarm"随着时间的推移。在XXXsetAlarm方法,创建Intent详情如下:

Intent i = new Intent("mypackage.START_ALARM");

这个START_ALARM信息可以是你想要的任何东西。我给它起这个名字只是为了演示。

我没有看到在清单中定义的接收者没有指定操作的意图筛选器。按照XXX指定的方式创建它们,似乎有点虚假。通过指定操作名,Android将被迫创建BroadcastReceiver使用对应于操作的类。如果您依赖于上下文,请注意android有几个不同的对象,它们都称为上下文,可能不会导致您的BroadcastReceiver创造出来的。强迫Android只使用动作消息来创建类的实例要比依赖可能永远无法工作的不确定的上下文要好得多。


查看完整回答
反对 回复 2019-05-30
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

下面是一个相当独立的例子。5秒后按钮会变红。

    public void SetAlarm()
    {
        final Button button = buttons[2]; // replace with a button from your own UI
        BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override public void onReceive( Context context, Intent _ )
            {
                button.setBackgroundColor( Color.RED );
                context.unregisterReceiver( this ); // this == BroadcastReceiver, not Activity
            }
        };

        this.registerReceiver( receiver, new IntentFilter("com.blah.blah.somemessage") );

        PendingIntent pintent = PendingIntent.getBroadcast( this, 0, new Intent("com.blah.blah.somemessage"), 0 );
        AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));

        // set alarm to fire 5 sec (1000*5) from now (SystemClock.elapsedRealtime())
        manager.set( AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 1000*5, pintent );
    }

不过,请记住,即使应用程序没有运行,AlarmManager也会触发。如果你调用这个函数并点击Home按钮,等待5秒,然后回到你的应用程序中,按钮就会变红。

我不知道如果你的应用程序没有在内存中,你会得到什么样的行为,所以要小心你试图保存什么样的状态。


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 499 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信