2016-08-01 63 views
0

我已經創建了一個應用程序,它允許用戶輸入作業截止日期,然後通知該作業到期的時間,但這一切都正常,但是,我找不到清晰的示例如何使警報在重新啓動後生存下來。
接收器上的數據庫內容僅用於填充具有特定分配信息的通知。警報本身不保存在數據庫中,時間和日期由用戶輸入設置並直接傳遞給警報管理器。
報警創建頁面:使警報生存開機

Long nIdLong = System.currentTimeMillis(); 
      String nId = nIdLong.toString(); 
    final int _id = (int) System.currentTimeMillis(); 

       Intent alarmIntent = new Intent(context, AlarmReceiver.class); 
       alarmIntent.putExtra("nID", nIdLong); 
       // make sure the intent have id's 
       PendingIntent pendingIntent = PendingIntent.getBroadcast(context, _id, alarmIntent , 0); 

       AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(getActivity().ALARM_SERVICE); 
       alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); 

這是我的接收器:

public void onReceive(Context context, Intent intent) 
    { 
     long dbId = intent.getLongExtra("nID", 0); 
     String notificationId = Long.toString(dbId); 


     Log.i("App", "called receiver method"); 
     try{ 

      userDbHelper = new UserDbHelper(context.getApplicationContext()); 
      sqLiteDatabase = userDbHelper.getReadableDatabase(); 
      cursor = userDbHelper.getAssignmentNotification(notificationId, sqLiteDatabase); 
      if (cursor.moveToFirst()) { 
       do { 

        id = cursor.getString(0); 
        name = cursor.getString(1); 
        subject = cursor.getString(2); 
        date = cursor.getString(3); 
        time = cursor.getString(4); 

       } while (cursor.moveToNext()); 
      } 
      NotificationGenerator.generateNotification(context, date, time, name, subject); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
+0

https://stackoverflow.com/questions/20065433/alarm-doesnt-trigger-after-reboot – CommonsWare

回答