每次系统日期与日期数组匹配时如何生成警报

时间:2014-04-16 11:26:16

标签: android calendar sharedpreferences alarm

我是Android和开发应用程序的新手,下面给出了场景

A&GT。有一个日期列表,其中包括 10,20,30,12,23等的月份日期   B个。我必须存储这些日期(使用共享首选项)   c取代。 现在,当日期符合系统日期时,警报应自动打开,并自定义弹出和通知

例如:    如果今天是2014年3月10日,则会自动生成警报和通知

我搜索了教程但没有找到符合我要求的任何内容 我不知道如何使用共享首选项与数组,并根据日期生成警报

到目前为止,我编码的内容如下:

public class MainActivity extends Activity {
    int my_date[] = new int[]{
            10 , 20 ,30 ,12, 23
    };

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


        Calendar cal=Calendar.getInstance();
        cal.set(Calendar.MONTH,3);
        cal.set(Calendar.YEAR,2014);
        cal.set(Calendar.DAY_OF_MONTH,16);
        cal.set(Calendar.HOUR_OF_DAY,11);
        cal.set(Calendar.MINUTE,17);

        Intent intent = new Intent(this, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
                     alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),pendingIntent );  


        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
        Editor editor = pref.edit();

        for(int i =0; i< my_date.length; i++){
            editor.putInt("dates", my_date[i]);
            editor.commit();

            cal.add(Calendar.DAY_OF_MONTH, my_date[i]);
            //Log.v("hahha","chk data"+my_date[i]);
         }

            //pref.getInt("dates", my_date[i]);



    }

}

1 个答案:

答案 0 :(得分:0)

1。在00:00等特定时间设置repeating每天的警报。当警报响起时,只需检查是否需要警报日。如果是欲望日期然后做你想做的事情否则忽略它。

2。将日期保存为共享首选项中的string

 SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
    Editor editor = pref.edit();

    editor.putString("dates", ","+my_date[0]+","+my_date[1]+","+my_date[2]........);
    editor.commit();

3. 现在,当闹钟响起时,请从共享首选项中获取保存的日期

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
     checkdate=pref.getString("dates");

4. 现在查看日期

if(checkDate.contains(","+todaysDate+","))
{
// do what ever u want to do
 }