EX10_03_1.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:5k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex10_03;
  2. import java.io.BufferedOutputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.util.Calendar;
  7. import android.app.Activity;
  8. import android.app.AlarmManager;
  9. import android.app.PendingIntent;
  10. import android.content.Intent;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.DatePicker;
  15. import android.widget.EditText;
  16. import android.widget.TimePicker;
  17. public class EX10_03_1 extends Activity
  18. {
  19.   /* 上次MC第一天的日期 */
  20.   private String mcdate_value = "";
  21.   /* MC周期 */
  22.   private String period_value = "";
  23.   /* 每日提醒时间 */
  24.   private String remind_value = "";
  25.   /* 声明日期变量 */
  26.   private int mYear;
  27.   private int mMonth;
  28.   private int mDay;
  29.   private DatePicker DatePicker01;
  30.   private EditText EditText01;
  31.   private Button Button02;
  32.   private TimePicker TimePicker01;
  33.   /** Called when the activity is first created. */
  34.   @Override
  35.   public void onCreate(Bundle savedInstanceState)
  36.   {
  37.     super.onCreate(savedInstanceState);
  38.     setContentView(R.layout.main_1);
  39.     DatePicker01 = (DatePicker) findViewById(R.id.DatePicker01);
  40.     EditText01 = (EditText) this.findViewById(R.id.EditText01);
  41.     Button02 = (Button) this.findViewById(R.id.Button02);
  42.     TimePicker01 = (TimePicker) findViewById(R.id.TimePicker01);
  43.     Bundle bunde = this.getIntent().getExtras();
  44.     mcdate_value = bunde.getString(EX10_03.mcdate_key);
  45.     period_value = bunde.getString(EX10_03.period_key);
  46.     remind_value = bunde.getString(EX10_03.remind_key);
  47.     /* MC周期 */
  48.     EditText01.setText(period_value);
  49.     /* 上次MC第一天的日期设置于DatePicker */
  50.     Calendar calendar = Calendar.getInstance();
  51.     if (mcdate_value != null)
  52.     {
  53.       mYear = Integer.parseInt(mcdate_value.substring(0, 4));
  54.       mMonth = Integer.parseInt(mcdate_value.substring(4, 6)) - 1;
  55.       mDay = Integer.parseInt(mcdate_value.substring(6, 8));
  56.     }
  57.     else
  58.     {
  59.       mYear = calendar.get(Calendar.YEAR);
  60.       mMonth = calendar.get(Calendar.MONTH);
  61.       mDay = calendar.get(Calendar.DAY_OF_MONTH);
  62.     }
  63.     DatePicker01.init(mYear, mMonth, mDay, null);
  64.     /* 每日提醒时间设置于TimePicker */
  65.     if (remind_value != null && remind_value.length() == 4)
  66.     {
  67.       TimePicker01.setCurrentHour(Integer.parseInt(remind_value
  68.           .substring(0, 2)));
  69.       TimePicker01.setCurrentMinute(Integer.parseInt(remind_value
  70.           .substring(2, 4)));
  71.     }
  72.     /* 将新的设置值写回文件 */
  73.     Button02.setOnClickListener(new Button.OnClickListener()
  74.     {
  75.       @Override
  76.       public void onClick(View arg0)
  77.       {
  78.         FileOutputStream fos;
  79.         try
  80.         {
  81.           /* 取得DatePicker的日期 */
  82.           int m = DatePicker01.getMonth() + 1;
  83.           String strM = m >= 10 ? "" + m : "0" + m;
  84.           int d = DatePicker01.getDayOfMonth();
  85.           String strD = d >= 10 ? "" + d : "0" + d;
  86.           mcdate_value = "" + DatePicker01.getYear() + "" + strM
  87.               + "" + strD;
  88.           /* 取得EditText的值 */
  89.           period_value = EditText01.getText().toString();
  90.           /* 取得TimePicker的时间 */
  91.           int h = TimePicker01.getCurrentHour();
  92.           String strH = h >= 10 ? "" + h : "0" + h;
  93.           int mu = TimePicker01.getCurrentMinute();
  94.           String strMu = mu >= 10 ? "" + mu : "0" + mu;
  95.           remind_value = strH + strMu;
  96.           fos = openFileOutput(EX10_03.fileName,
  97.               MODE_WORLD_WRITEABLE);
  98.           BufferedOutputStream bos = new BufferedOutputStream(fos);
  99.           String txt = EX10_03.mcdate_key + "=" + mcdate_value;
  100.           bos.write(txt.getBytes());
  101.           bos.write(new String("n").getBytes());
  102.           txt = EX10_03.period_key + "=" + period_value;
  103.           bos.write(txt.getBytes());
  104.           bos.write(new String("n").getBytes());
  105.           txt = EX10_03.remind_key + "=" + remind_value;
  106.           bos.write(txt.getBytes());
  107.           bos.close();
  108.           fos.close();
  109.         }
  110.         catch (FileNotFoundException e)
  111.         {
  112.           // TODO Auto-generated catch block
  113.           e.printStackTrace();
  114.         }
  115.         catch (IOException e)
  116.         {
  117.           // TODO Auto-generated catch block
  118.           e.printStackTrace();
  119.         }
  120.         Intent receiverIntent = new Intent(EX10_03_1.this,
  121.             AlarmReceiver.class);
  122.         PendingIntent sender = PendingIntent.getBroadcast(
  123.             EX10_03_1.this, 1, receiverIntent, 0);
  124.         /* 取得AlarmManager服务 */
  125.         AlarmManager am;
  126.         am = (AlarmManager) getSystemService(ALARM_SERVICE);
  127.         /* 先将AlarmManager停止 */
  128.         am.cancel(sender);
  129.         /* 1天的毫秒 */
  130.         int times = 24 * 60 * 60 * 1000;
  131.         /* 取得TimePicker的值当作驱动的时间 */
  132.         Calendar calendar = Calendar.getInstance();
  133.         calendar.set(Calendar.HOUR_OF_DAY, TimePicker01
  134.             .getCurrentHour());
  135.         calendar.set(Calendar.MINUTE, TimePicker01
  136.             .getCurrentMinute());
  137.         calendar.set(Calendar.SECOND, 0);
  138.         calendar.set(Calendar.MILLISECOND, 0);
  139.         long triggerTime = calendar.getTimeInMillis();
  140.         /* 每日同一时间运行一次 */
  141.         am.setRepeating(AlarmManager.RTC_WAKEUP, triggerTime,
  142.             times, sender);
  143.         /* 回到主画面 */
  144.         Intent intent = new Intent();
  145.         intent.setClass(EX10_03_1.this, EX10_03.class);
  146.         startActivity(intent);
  147.         finish();
  148.       }
  149.     });
  150.   }
  151. }