0

我正在使用 android 2.3 开发移动和平板电脑应用程序**

我想做一些操作,即操作-A 和操作-B。两者都执行一些过程。
我想重复 Operation-A 和 Operation-B 每隔 1 小时执行一次
Operation-A 在 Operation-B 的 10 分钟之前执行
Operation-B 当时间为 0.00,1.00,2.00,3.00 时执行。 ...,23.00(我使用的是铁路时间。所以上午或下午不会混淆)。
时间为0.50,1.50,2.50,3.50,....,23.50 时执行操作-A
以上场景在android 中是否可行。
所有这些都是您对上述场景的想法。

我打算使用AlarmManager。AlarmManager 是安卓系统服务。它用于每 1 小时通知一次应用程序。
我计划为 Operation-A 使用一个 AlarmManager,为 Operation-B 使用另一个 AlarmManager。
我的疑问是,在 android 中是否可以在单个应用程序中使用多个具有不同重复值的 AlarmManager?


欢迎您的所有想法。

4

1 回答 1

1

是的,此任务将在具有重复功能的 AlarmManager 的帮助下完成。首先,您需要创建两个接收事件的接收器类。然后需要设置重复报警。

private void setAlarm1()
    {
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.HOUR, 1);
        Intent intent = new Intent(this, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
        intent, PendingIntent.FLAG_CANCEL_CURRENT);

        am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*60, pendingIntent);
    }
    private void setAlarm2()
    {
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.MINUTE, 50);
        Intent intent = new Intent(this, AlarmReceiver_1.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
        intent, PendingIntent.FLAG_CANCEL_CURRENT);

        am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*50, pendingIntent);
    }

public class AlarmReceiver extends BroadcastReceiver {


     @Override
     public void onReceive(Context context, Intent intent) {

     }

    }
public class AlarmReceiver_1 extends BroadcastReceiver {


     @Override
     public void onReceive(Context context, Intent intent) {

     }

    }

在清单中,您需要如下声明类。

 <receiver android:name=".AlarmReceiver" />
             <receiver android:name=".AlarmReceiver_1" />
于 2012-11-23T07:26:38.037 回答