用Android studio编写一个闹钟app
时间: 2024-04-30 13:24:43 浏览: 121
好的,下面是一个简单的闹钟App的代码:
首先,在 Android Studio 中创建一个新项目,并在MainActivity.java文件中添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private TimePicker timePicker;
private Button startAlarm, stopAlarm;
private AlarmManager alarmManager;
private PendingIntent pendingIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePicker = findViewById(R.id.time_picker);
startAlarm = findViewById(R.id.start_alarm);
stopAlarm = findViewById(R.id.stop_alarm);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
startAlarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
long alarmTime = calendar.getTimeInMillis();
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent);
Toast.makeText(MainActivity.this, "Alarm set for " + hour + ":" + minute, Toast.LENGTH_SHORT).show();
}
});
stopAlarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alarmManager.cancel(pendingIntent);
Toast.makeText(MainActivity.this, "Alarm canceled", Toast.LENGTH_SHORT).show();
}
});
}
}
```
这里,我们定义了一个TimePicker作为用户选择闹钟时间的界面元素,以及两个按钮startAlarm和stopAlarm。我们还定义了一个闹钟管理器AlarmManager和一个用于启动和停止闹钟的PendingIntent。
startAlarm按钮的点击事件将获取当前选择的小时和分钟,并使用Calendar类将其设置为闹钟时间。然后,我们将闹钟时间传递给AlarmManager,并使用PendingIntent启动闹钟。stopAlarm按钮的点击事件将取消闹钟。
接下来,我们需要创建一个AlarmReceiver类来接收闹钟广播并处理闹钟事件。在Android Studio中,创建一个新的Java类AlarmReceiver.java,并添加以下代码:
```java
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm triggered", Toast.LENGTH_SHORT).show();
}
}
```
这里,我们只是简单地在广播接收器中显示一个Toast消息,但你可以根据需要添加更复杂的逻辑,例如播放铃声或振动。
最后,我们需要在AndroidManifest.xml文件中注册广播接收器。在<application>标签内添加以下代码:
```xml
<receiver android:name=".AlarmReceiver" />
```
这样,我们的简单闹钟App就完成了!可以运行它并选择一个时间来设置闹钟。当闹钟时间到达时,你将看到一个Toast消息。
阅读全文