activity-从onReceive 方法中设置新的报警器

问题描述

从onReceive 方法中设置新的报警器

在数据库(按时间排序)中有一个 reminders 的集合,当程序开启时我就调用 setAlarm。我需要在 onReceive 方法中添加代码来实现下面的任务:
1.从数据库中获取第一个提醒。
2.获得相关提醒的延迟。
3.设置一个新的报警获得下一个提醒。
我创建的 BroadcastReceiver 类:

public class AlarmReceiver extends BroadcastReceiver{
    private static final String DEBUG_TAG= "AlarmReceiver";

    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        Log.d(DEBUG_TAG,"ALARM!!!");
            // --mycode--
    }
}

Activity 类:

public class AlarmActivity extends Activity {
    private Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);
        context = getApplicationContext();
    }
    public void setAlarm(View v){
        Intent intent = new Intent(this,AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ Delay,pendingIntent);
        Log.i("SETTER","Alarm started");
    }
    public void stopAlarm(View v){
        Intent intent = new Intent(this,AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        pendingIntent.cancel();
    }
}

现在在 --mycode— 这部分,新的延迟将会从数据库中获得,并且会使用这个新的Delay设置新的报警。
如何从 onReceive方法中设置一个新的 AlarmManager?

时间: 2024-10-28 08:01:34

activity-从onReceive 方法中设置新的报警器的相关文章

线程-可以在broadcast的onreceive()方法中开一个service吗

问题描述 可以在broadcast的onreceive()方法中开一个service吗 可以在broadcast的onreceive()方法中开一个Service吗? 可以在broadcast的onreceive()方法中开一个Thread吗? 为什么呢? 解决方案 当然可以开启一个服务,服务是四大组件之一,就像可以新建一个activity,广播中可以新开线程,但是不建议这么做,广播生命周期短,线程如果做比较耗时的工作,而广播死掉了,那么线程没做完事也跟着死掉了. 解决方案二: 都可以的,以下是

global-在BroadCast receiver的Onreceive方法中如何获得全局数据?

问题描述 在BroadCast receiver的Onreceive方法中如何获得全局数据? 我想在 BroadCast receiver 类中获取一个全局数据.我用的下面的代码,进入BroadCast receiver 类 public class Global extends Application{String mobileNumber;public String getMobileNumber() { return mobileNumber;}public void setMobileN

为什么不要在viewDidLoad方法中设置开始监听键盘通知

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一个普遍的错误是,程序猿(媛)试图在view controller的view不在屏幕上时监听键盘通知. 他们开始在viewDidLoad方法中开始监听通知,并且在dealloc方法中移除监听通知. 这是一种大有问题的行为,因为当你的视图不在屏幕上显示,而键盘开始显示在其他视图上的时候,你绝不应该在你的视图控制器中调整任何键盘组件的显示! 牢记这一点:键盘通知就

在WPS演示2013中设置新对象的默认值

  ①首先我们启动WPS演示2013,单击菜单栏--插入--形状,选择一款图形插入. ②右击图形,选择设置对象格式. ③设置线条以及填充色,最后勾选新对象默认值,切记一定要勾选此项. ④确定之后,重新插入形状,可以看到新插入的形状图形样式颜色都跟刚才设置的一样.

Android 中 退出多个activity的经典方法_Android

1.使用List集合方式 用list保存activity实例,然后逐一干掉 import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.DialogInterface; import android.content.Inte

xml-android中设置自定义activity弹出框大小

问题描述 android中设置自定义activity弹出框大小 我自己写了一个播放器界面,采用继承Theme.Dialog的形式,但是我觉得弹出框太小放不下我需要的内容,所以我想设置弹出框左右边距距离手机屏幕固定长度.但是在实际操作中我在activity文件里可以获取到屏幕宽度,但是无法设置弹出框大小.在xml文件里可以设置layout_width但是不知道怎么获取屏幕大小.求高人指点下如何设置? 解决方案 在那个activity的OnCreate()方法里设置,我在http://www.apk

Android 中 退出多个activity的经典方法

1.使用List集合方式 用list保存activity实例,然后逐一干掉 import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.DialogInterface; import android.content.Inte

android-在一个自定义适配器中设置ImageView的可见性

问题描述 在一个自定义适配器中设置ImageView的可见性 我自定义了一个列表适配器.我想要列表适配器中的图像根据一个值来显示或隐藏.但是我发现这个图像的可见性也不是依据这个值的.如何运用这个值设置ImageView的可见性呢? 下面是我的代码,代码是在 getView 方法中设置的 singleRow=data.get(position); readit = singleRow.getRead(); Log.i("readit","" + readit ); /

在WebSphere Process Server中为新的查询要求设置自定义属性

简介 在您开发一个业务流程客户端程序时,您经常需要在一个流程实例内,通过某些业务数据标准来查询流程实例.活动和任务. 例如,您可能想要在流程实例中寻找与某个 ID 的客户相关的所有任务. 当您在 WebSphere Integration Developer(以下简称为 Integration Developer)设计流程时,可以通过为人工任务设置自定义属性来实现这个需求.然而,当流程投入使用后,如果新查询要求需要 新的自定义属性,那么这招就不灵了.您当然可以使用 WebSphere Proce