我是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]);
}
}
答案 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
}