第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

重啟后第二天警報管理器不起作用

重啟后第二天警報管理器不起作用

慕妹3146593 2021-10-20 14:25:39
這就是我創(chuàng)建鬧鐘的方式    PendingIntent alarmIntent = PendingIntent.getBroadcast(getContext(), 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);    AlarmManager alarm = (AlarmManager) getContext().getSystemService(ALARM_SERVICE);    Calendar startTime = Calendar.getInstance();    startTime.set(Calendar.HOUR_OF_DAY, hourOfDay);    startTime.set(Calendar.MINUTE, minute);    startTime.set(Calendar.SECOND, 0);    if (startTime.getTimeInMillis() < System.currentTimeMillis()) {        startTime.add(Calendar.DAY_OF_MONTH, 1);    }    long intendedTime = startTime.getTimeInMillis();    alarm.setRepeating(AlarmManager.RTC_WAKEUP, intendedTime, AlarmManager.INTERVAL_DAY, alarmIntent);我在 BroadcastReceiver 中調(diào)用的方法:private void startAlarm(Context context) {    Intent mainIntent = new Intent(context, MainActivity.class);    PendingIntent contentIntent = PendingIntent.getActivity(context, 1, mainIntent, PendingIntent.FLAG_UPDATE_CURRENT);    NotificationManager myNotificationManager =            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);    Notification.Builder builder = new Notification.Builder(context);    builder.setSmallIcon(R.drawable.l_active)            .setContentTitle(context.getString(R.string.morn_title))            .setContentText(context.getString(R.string.morn_text))            .setWhen(System.currentTimeMillis())            .setContentIntent(contentIntent);    myNotificationManager.notify(1, builder.build());}所以我遇到了像這里這樣的問題。當我將鬧鐘設置為 9:51 而我的時間是 10:00 時 - 鬧鐘不起作用。添加后if (startTime.getTimeInMillis() < System.currentTimeMillis()) {        startTime.add(Calendar.DAY_OF_MONTH, 1);}警報工作正常,但是當我重新啟動手機時 - 它不起作用。我會試著用一個例子來解釋:我手機上的時間是23:50。我在 00:05 設置鬧鐘,然后我重新啟動手機并等到 00:05。而且鬧鐘不響。但!如果我不重啟手機 - 一切正常。還有一件事:當我沒有設置過去的時間時,我的手機重啟沒有問題(例如,我的時間是 22:00,我將時間設置為 22:05,重啟手機就可以了)
查看完整描述

1 回答

?
萬千封印

TA貢獻1891條經(jīng)驗 獲得超3個贊

即使在重新啟動后,AlarmManager 也不會持續(xù)存在。您可以通過創(chuàng)建一個 BroadCastReceiver 來使 AlarmManager 在重新啟動后工作,該 BroadCastReceiver 將在設備啟動完成時啟動警報。


使用<action android:name="android.intent.action.BOOT_COMPLETED" />在廣播接收器類誘捕啟動活動。


您需要在 AndroidManifest.xml 中添加上一行,如下所示,


<receiver android:name=".StartUpReceiver" android:enabled="true" android:exported="false" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

  <intent-filter>

    <action android:name="android.intent.action.BOOT_COMPLETED" />

  </intent-filter>

</receiver>

類 StartUpReceiver


public class StartUpReceiver extends BroadcastReceiver {

  @Override

  public void onReceive(Context context, Intent intent) {


      if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {

         ////// reset your alrarms here 

      }


  }

}  

在StartUpReceiver你可以AlarmManager再次創(chuàng)建警報。我建議使用需要store alarm info在database或SharedPreferences所以會產(chǎn)生信息創(chuàng)建報警時,裝置完成重啟。


查看完整回答
反對 回復 2021-10-20
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號