手机当中肯定是有闹钟的,这是不用说的,要不然就不是手机了。对吧。
下面我根据广播的方式写了一个闹钟,大家请看图:
下面让我们看一下原代码的是如何写的,
package com.smart;
import java.util.Calendar;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
public class AlarmReceiver extends BroadcastReceiver {
/**
* 通过广播进行扫描,是否到达时间后再响起闹铃
*
* */
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreferences=context.getSharedPreferences("alarm_record", Activity.MODE_PRIVATE);
String hour=String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
String minute=String.valueOf(Calendar.getInstance().get(Calendar.MINUTE));
String time=sharedPreferences.getString(hour+":"+minute, null);//小时与分,
if(time!=null){//判断是否为空,然后通过创建,
MediaPlayer mediaPlayer=MediaPlayer.create(context, R.raw.llb);
mediaPlayer.start();//开始
}
}
}
package com.smart;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
public class Main extends Activity implements OnClickListener{
private TextView alarmRecord;
private SharedPreferences sharedPreferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button addAlarm=(Button)findViewById(R.id.addAlarm);
alarmRecord=(TextView)findViewById(R.id.alarmRecord);
addAlarm.setOnClickListener(this);
sharedPreferences=getSharedPreferences("alarm_record", Activity.MODE_PRIVATE);
AlarmManager aManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(this,AlarmReceiver.class);
PendingIntent pendingIntent=PendingIntent.getBroadcast(this, 0, intent, 0);
aManager.setRepeating(AlarmManager.RTC, 0, 60*1000, pendingIntent);
}
@Override
public void onClick(View v) {
View view=getLayoutInflater().inflate(R.layout.llb, null);//
final TimePicker timePicker=(TimePicker)view.findViewById(R.id.timepicker);
timePicker.setIs24HourView(true);//
new AlertDialog.Builder(this).setTitle("设置闹铃时间").setView(view).setPositiveButton("确定", new DialogInterface.OnClickListener() {
//设置标题
@Override
public void onClick(DialogInterface dialog, int which) {
//按钮事件触发方法
String timeStr=String.valueOf(timePicker.getCurrentHour())+":"+String.valueOf(timePicker.getCurrentMinute());
alarmRecord.setText(alarmRecord.getText().toString()+"\n"+timeStr);
sharedPreferences.edit().putString(timeStr, timeStr).commit();
}
}).setNegativeButton("取消", null).show();
}
}