如何在Android中安排每天12到3之间的随机警报时间

问题描述 投票:0回答:1

我想每天早上12点至3点重新启动移动设备。事情就是这样,创建了一个警报管理器,该警报管理器在凌晨12点到凌晨3点之间创建了随机时间,然后传递给正确的tigger警报管理器,重新启动了手机。在重新启动手机期间创建随机时间,并创建另一个时间,但是当我创建另一个时间时则创建了另一个时间,如果时间已经过去,那么它将第二天移动。我不想错过那天重启我的手机。这意味着可以取消警报创建新的一个或任何其他想法吗?

public class MainActivity extends AppCompatActivity {

AlarmManager alarmManager;
PendingIntent pendingIntent;
private int hour;
private int min;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Intent alarmIntent = new Intent(this, MyBroadCastReceiver.class);
    pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);

    hour = generateRandomIntIntRange(0 , 2);
    min = generateRandomIntIntRange(0, 59);
    System.out.println("hour: " + hour);
    System.out.println("min: " + min);
    startAlarm(hour , min);

}

private void startAlarm( int hour, int min) {

    Calendar calendar = Calendar.getInstance();
    Calendar calendar1 = (Calendar) calendar.clone();
    calendar1.setTimeInMillis(System.currentTimeMillis());
    calendar1.set(Calendar.HOUR_OF_DAY, hour);
    calendar1.set(Calendar.MINUTE, min);
    calendar1.set(Calendar.SECOND, 0);
    calendar1.set(Calendar.MILLISECOND, 0);

    if(calendar1.compareTo(calendar) <=0){
        calendar1.add(Calendar.DATE, 1);
    }

    alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
 }
} 
}


  public class MyBroadCastReceiver extends BroadcastReceiver {

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

    try {
        // did some code and restarting mobile, which is working fine, assume it will start MainActivity-> onCreate, where random time will generate
    } catch (Exception e) {
        e.printStackTrace();
    }


}

}

我希望输出是每天12到3之间的随机时间,应该重新启动,但是如果时间到了,那么接下来要重新启动移动设备。

示例:当第一时间移动设备启动产生于上午12:30第一天:tigger 12:30 am,生成时间2:30 am第一天:tigger 2:30 am,生成时间12:55 am第三天不是在上午12:55触发,而是第四天在12:55触发。我在这里想念某天(第三天:12:55 am),我不想错过任何一天。

我以为可能是解决方法,如果收到后删除警报,这是个好主意吗?以及如何执行此操作?

android alarmmanager
1个回答
-1
投票

解决了吗?我需要完全相同的App。

De:Leonardo Cardillo段落:[email protected]:sábado,2020年3月21日14:01:23 GMT-6Asunto:随机警报不起作用

随机警报是一种在随机情况下提醒您某些事情的工具。一些例子:-确保你没有做梦-做俯卧撑-祈祷

默认情况下,警报只是声音通知,您可能会注意到也可能不会注意到。如果选择这样做,则在警报响起时还会显示一个消息对话框。

随机性实际上是随机的,即未计划,并且警报可能会在任何时候响起。NOVEDADES可以指定每周或每天的警报频率

不起作用!!!为什么?

LeonardoTomásCardillo。@:[email protected]手机:+521 782 108 3856 / Skype:leonardo1980arg韦拉克鲁斯州Poza Rica。

about.me/leonardotomascardillo

© www.soinside.com 2019 - 2024. All rights reserved.