logo资料库

Android简单闹钟程序.docx

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
Android简单闹钟程序
Android 简单闹钟程序 http://www.android-study.com/yuandaima/279.html 这个应用实现了简单的闹钟功能,关闭程序的状态中也可以进行闹钟的提醒。 这里遗留了一个问题: 如果我通过应用本身关闭程序,是可以实现我上述所说的功能,但是如果我在手机进程管理 中实现应用程序的关闭操作,这个提醒就不起作用了,我很疑惑的是,我通过应用程序本身 关闭了后,在进程中也是查看不到这个应用了的。所以哪位知道的帮留个言指点下,谢谢。 ClockDemo.java import java.util.Calendar; import android.app.Activity; import android.app.AlertDialog; import android.app.TimePickerDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.TimePicker; ? package com.example.clock; 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 public class ClockDemo extends Activity { private Button mSet; Calendar mCalendar = Calendar.getInstance(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ObjectPool.mAlarmHelper = new AlarmHelper(this); mSet = (Button) findViewById(R.id.mSet); setListener(); }
1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 public void setListener() { mSet.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { mCalendar.setTimeInMillis(System.cur rentTimeMillis()); mCalendar.get(Calendar.HOUR_OF_DAY); int mHour = int mMinute = mCalendar.get(Calendar.MINUTE); new TimePickerDialog(ClockDemo.this, new TimePickerDialog.OnTimeSetListener() { onTimeSet(TimePicker view, int hourOfDay, int minute) { endar.setTimeInMillis(System .currentTimeMillis()); endar.set(Calendar.HOUR_OF_DAY, hourOfDay); endar.set(Calendar.MINUTE, minute); endar.set(Calendar.SECOND, 0); endar.set(Calendar.MILLISECOND, 0); ctPool.mAlarmHelper.openAlarm(32, "ddd", public void mCal mCal mCal mCal mCal Obje "ffff", mCalendar.getTimeInMillis()); } }, mHour, mMinute, true).show(); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { showBackDialog();
4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 return true; } return super.onKeyDown(keyCode, event); } /** Give the tip when exit the application. */ public void showBackDialog() { final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提示") .setIcon(R.drawable.icon) .setMessage("是否退出?") .setPositiveButton("sure", new DialogInterface.OnClickListener() { onClick(DialogInterface dialog, public void int which) { em.exit(0); oid.os.Process .killProcess(android.os.Process.myPid()); og.dismiss(); } }) .setNegativeButton("cancel", new Syst andr dial DialogInterface.OnClickListener() { onClick(DialogInterface dialog, int which) { og.dismiss(); public void dial } }); AlertDialog ad = builder.create(); ad.show(); }
} 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4
8 5 8 6 8 7 8 8 8 9 9 0 AlarmHelper.java ? 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 package com.example.clock; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; public class AlarmHelper { private Context c; private AlarmManager mAlarmManager; public AlarmHelper(Context c) { this.c = c; mAlarmManager = (AlarmManager) c .getSystemService(Context.ALARM_SER VICE); } public void openAlarm(int id, String title, String content, long Intent intent = new Intent(); intent.putExtra("_id", id); intent.putExtra("title", title); intent.putExtra("content", content); intent.setClass(c, CallAlarm.class); PendingIntent pi = PendingIntent.getBroadcast(c, id, time) { intent,
mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, PendingIntent.FLAG_UPDATE_CURRENT); pi); } public void closeAlarm(int id, String title, String content) { Intent intent = new Intent(); intent.putExtra("_id", id); intent.putExtra("title", title); intent.putExtra("content", content); intent.setClass(c, CallAlarm.class); PendingIntent pi = PendingIntent.getBroadcast(c, id, intent, 0); } } mAlarmManager.cancel(pi); 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 CallAlarm.java
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 package com.example.clock; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class CallAlarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { intent.setClass(context, AlarmAlert.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } AlarmAlert.java import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; public class AlarmAlert extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); new AlertDialog.Builder(AlarmAlert.this) .setIcon(R.drawable.clock) .setTitle("ddd") .setMessage("fff") .setPositiveButton("ddd", new ? package com.example.clock; 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 int whichButton) { em.exit(0); DialogInterface.OnClickListener() { onClick(DialogInterface dialog, public void Syst andr
oid.os.Process .killProcess(android.os.Process.myPid()); } }).show(); } } 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 ObjectPool.java ? public class ObjectPool { 1 2 3 4 5 6 } /** The alarm object. */ public static AlarmHelper mAlarmHelper; main.xml ? 1 2 3 4 5 6 7 8 9 10 11 12 13
分享到:
收藏