2013-01-11 103 views
1

嗨,我正在開發報警應用程序,因爲我需要在用戶選擇的不同日期同時重複調用報警。如何使用報警管理器獲取週日重複報警?

我meen如果我設置報警時間爲8PM和重複的選擇,因爲sundaytuesday報警器會在每個sunday被調用,tuesday

任何幫助,將不勝感激。

回答

8

使用廣播接收器和Sqlite數據庫。

public class MyReceiver extends BroadcastReceiver { 
    DBAdapter mDba; 
    SQLiteDatabase mDb; 
    Ringtone rt; 
    MediaPlayer mp; 
    AlertDialog.Builder alertbox; 
    Context ctx; 

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

     DBHelper mDbh = new DBHelper(context, null, null, 1); 
     mDb = mDbh.getWritableDatabase(); 
     mDb.setLockingEnabled(true); 
     mDba = new DBAdapter(context); 
     mDba.open(); 
     Cursor cr = mDb.query("mReminderEntry", null, null, null, null, 
       null, null); 
     if (cr.equals(null)) { 
      System.out.println("No Data Found"); 
     } else { 
      Date d = new Date(); 
      Calendar calendar = Calendar.getInstance(); 
      int day = calendar.get(Calendar.DAY_OF_WEEK); 
      String today = null; 
      if (day == 2) { 
       today = "Monday"; 
      } else if (day == 3) { 
       today = "Tuesday"; 
      } else if (day == 4) { 
       today = "Wednesday"; 
      } else if (day == 5) { 
       today = "Thursday"; 
      } else if (day == 6) { 
       today = "Friday"; 
      } else if (day == 7) { 
       today = "Saturday"; 
      } else if (day == 1) { 
       today = "Sunday"; 
      } 

      int system_hour = d.getHours(); 
      int system_minute = d.getMinutes(); 
      cr.moveToFirst(); 
      for (int i = 0; i < cr.getCount(); i++) { 
       if (cr.getString(3).equals(system_hour + ":" + system_minute) 
         && cr.getString(1).equals("Daily")) { 
        Intent scheduledIntent = new Intent(context, MyScheduledActivity.class); 
        scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(scheduledIntent); 

        break; 

       } else if (cr.getString(3).equals(
         system_hour + ":" + system_minute) 
         && cr.getString(1).equals(today)) { 

        Intent scheduledIntent = new Intent(context, MyScheduledActivity.class); 
        scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(scheduledIntent); 

        break; 
       } else { 
        System.out.println("No Matching"); 
       } 
       cr.moveToNext(); 
      } 
     } 
     cr.close(); 
     mDba.close(); 
    } 
}