这一次的任务是两个人合作设计一个简单的APP,其中设计到了源代码的设计,源代码的实现以及源代码的控制。在设计app前,我们先仔细研究了软件是如何设计与实现的,然后我们决定做个简单的app—提醒小闹钟。在设计的过程中,问题很多,因为从未设计过app,开始完全不知道如何去设计代码,我们两个商量了下,在百度找到了教程,跟着教程一步一步研究如何设计一个app。我们觉得做一个提醒小闹钟app,其功能是使用者设置好时间与事项后,该app就会在使用者设置的时间响起,然后显示使用者之前输入的事项。
代码我们参考了一些资料和别人设计的代码,最后核心代码如下
package com.example.alarmtest;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity {
Button button;
AlarmManager alarmManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
//获取AlarmManager对象
alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Calendar currentTime = Calendar.getInstance();
//创建一个TimePickerDialog实例,并显示
new TimePickerDialog(MainActivity.this, 0,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//指定启动AlarmActivity组件
Intent intent = new Intent(MainActivity.this, AlarmActivity.class);
//创建PendingIntent对象
/*
* PendingIntent与Intent的区别是PendingIntent处理即将发生的事情
* 比如:在通知栏Notification中跳转页面,不是立即跳转
* 通常通过 getActivity、getBroadcast、getService得到PendingIntent的实例
*
*/
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR, hourOfDay);
c.set(Calendar.MINUTE, minute);
alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);
Toast.makeText(MainActivity.this, "设置闹钟成功", Toast.LENGTH_SHORT).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime.get(Calendar.MINUTE), false).show();
}
});
}
}
原文:http://www.cnblogs.com/bj1223/p/5423076.html