教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

Android原生模块DeskClock分析1(5)

来源:网络收集 时间:2026-07-05
导读: return super.onOptionsItemSelected(item); } //监听按钮 public void onItemClick(AdapterView parent, View v, int pos, long id) { Intent intent = new Intent(this, SetAlarm.class); intent.putExtra(Alarms

return super.onOptionsItemSelected(item);

} //监听按钮

public void onItemClick(AdapterView parent, View v, int pos, long id) { Intent intent = new Intent(this, SetAlarm.class); intent.putExtra(Alarms.ALARM_ID, (int) id); startActivity(intent); Log.i(\ } }

? 闹铃后的操作

AlarmAlertFullScreen继承Activity,这是响铃界面。当系统发出广播时,通过BroadcastReceiver接受到广播,来触发响铃。 ? 打盹(snooze)

Snooze后,系统发出通知,提示下一次再响时间 private void snooze() {

// 不终止闹铃,则闹铃被禁用

if (!findViewById(R.id.snooze).isEnabled()) {Log.v(\ dismiss(false); return; }

final String snooze =

PreferenceManager.getDefaultSharedPreferences(this)

.getString(SettingsActivity.KEY_ALARM_SNOOZE, DEFAULT_SNOOZE); int snoozeMinutes = Integer.parseInt(snooze);

final long snoozeTime = System.currentTimeMillis() + (1000 * 60 * snoozeMinutes);

Alarms.saveSnoozeAlert(AlarmAlertFullScreen.this, mAlarm.id, snoozeTime);

//得到显示时间打盹和更新的通知. final Calendar c = Calendar.getInstance(); c.setTimeInMillis(snoozeTime);

// (snoozed)添加标签.

String label = mAlarm.getLabelOrDefault(this);

label = getString(R.string.alarm_notify_snooze_label, label);

//通知用户已经snoozed警报。

14

DeskClock分析文档

Intent cancelSnooze = new Intent(this, AlarmReceiver.class); cancelSnooze.setAction(Alarms.CANCEL_SNOOZE); cancelSnooze.putExtra(Alarms.ALARM_ID, mAlarm.id); PendingIntent broadcast =

PendingIntent.getBroadcast(this, mAlarm.id, cancelSnooze, 0); Log.v(\

NotificationManager nm = getNotificationManager();

Notification n = new Notification(R.drawable.stat_notify_alarm, label, 0);

n.setLatestEventInfo(this, label,

getString(R.string.alarm_notify_snooze_text, Alarms.formatTime(this, c)), broadcast); n.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONGOING_EVENT; nm.notify(mAlarm.id, n); Log.v(\

String displayTime = getString(R.string.alarm_alert_snooze_set, snoozeMinutes);

Log.v(displayTime);

// 显示toast。

Toast.makeText(AlarmAlertFullScreen.this, displayTime, Toast.LENGTH_LONG).show();

stopService(new Intent(Alarms.ALARM_ALERT_ACTION)); finish();

}

? 取消(dismiss)

private void dismiss(boolean killed) {

Log.i(killed ? \

// The service told us that the alarm has been killed, do not modify // the notification or stop the service. if (!killed) {Log.v(\

// Cancel the notification and stop playing the alarm NotificationManager nm = getNotificationManager(); nm.cancel(mAlarm.id);

stopService(new Intent(Alarms.ALARM_ALERT_ACTION)); } finish();

}

15

…… 此处隐藏:374字,全部文档内容请下载后查看。喜欢就下载吧 ……
Android原生模块DeskClock分析1(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/520580.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)