Android闹钟及相关组件
来源:互联网 发布:js 监听dom变化 编辑:程序博客网 时间:2024/05/16 07:10
Android系统中闹钟主要用到了AlarmManager。AlarmManager实际上还是一个全局定时器,AlarmManager可在指定的时间或周期内启动其他组件(包括Activity、Service、Broadcastreceiver)。
AlarmManager获取:AlarmManger应用的程序是通过Context的getSystemService()方法来获取AlarmManager对象的。
AlarmManager启动的组件的方法参数主要有Intent和PendingIntent两个还有一些时间周期的设置。
下面是一个通过启动BroadcastReceiver的闹钟实例:
public class MainActivity extends Activity implements OnClickListener {private Button addAlarm;private SharedPreferences sharedPreferences;private TextView alarmRecord;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);alarmRecord = (TextView) findViewById(R.id.textView1);addAlarm = (Button) findViewById(R.id.button1);addAlarm.setOnClickListener(this);sharedPreferences = getSharedPreferences("alarm_record",Activity.MODE_PRIVATE);AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,intent, 0);alarmManager.setRepeating(AlarmManager.RTC, 0, 60 * 1000, pendingIntent);}@Overridepublic void onClick(View v) {View view = getLayoutInflater().inflate(R.layout.aaa, null);final TimePicker timePicker = (TimePicker) view.findViewById(R.id.timePicker1);timePicker.setIs24HourView(true);new AlertDialog.Builder(this).setTitle("闹钟设置").setView(view).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 按钮事件触发String times = String.valueOf(timePicker.getCurrentHour()+ ":"+ timePicker.getCurrentMinute());alarmRecord.setText(alarmRecord.getText().toString()+ "\n" + times);System.out.println("time---" + times);sharedPreferences.edit().putString(times, times).commit();}}).setNegativeButton("取消", null).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
public class AlarmReceiver extends BroadcastReceiver {/* * 通过广播进行扫描是否到达时间 */@Overridepublic void onReceive(Context arg0, Intent arg1) {SharedPreferences sharedPreferences = arg0.getSharedPreferences("alarm_record", Activity.MODE_PRIVATE);String hours = String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));String minutes = String.valueOf(Calendar.getInstance().get(Calendar.MINUTE));String time = sharedPreferences.getString(hours + ":" + minutes, null);if (time != null) {MediaPlayer mediaPlayer = MediaPlayer.create(arg0, R.raw.hetang);mediaPlayer.start();}}}
还有一点,就是在用到别的组件和一些权限的时候,需要在配置文件AndroidManifest.xml中配置上别的组件和权限。否则是不会启动相应组件的。
Android打电话代码:Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+call.getText().toString()));
MainActivity.this.startActivity(callIntent);
需要在配置文件中加上<uses-permission android:name="android.permission.CALL_PHONE"/>
- Android闹钟及相关组件
- 闹钟相关设定及闹钟的息屏唤醒
- android 设置闹钟及通知
- Android中的BatteryService及相关组件
- Android中的BatteryService及相关组件
- [转]Android中的BatteryService及相关组件
- Android中的BatteryService及相关组件
- Android中的BatteryService及相关组件
- Android中的BatteryService及相关组件
- Android中的BatteryService及相关组件
- MediaPlayer播放音视频及AudioManager相关 && Android RTC浅析和Alarm manager 闹钟开发
- Android-闹钟(单次闹钟及周期闹钟<通过服务>),发送通知
- Android定时任务及闹钟的实现
- Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(一)
- Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(二)
- android闹钟
- ANDROID 闹钟
- Android 闹钟
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- JDK类库中的线程池
- 成都粮食局长称世界粮食日将体验24小时饥饿-世界粮食日-体验饥饿-国家粮食局
- C语言的谜题
- java生成exe文件
- Android闹钟及相关组件
- Java随机验证码 图片验证码 基于servlet验证码实现
- svn清理工具 RySVNCleaner
- JavaScript全局函数
- vs.net代码段管理器应用
- struts2防止重复提交问题
- gcc参数详解
- 武汉长江大桥今迎55岁生日 被撞70余次仍无恙-武汉长江大桥-生日-无恙
- MSSQLSERVER数据库- 存储过程