-2
//MainActivity
public class MainActivity extends AppCompatActivity {
Button b1, b2, b3;
TextView t1, t2;
int date, month, year, hour, min;
Calendar calendar;
Date date1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button) findViewById(R.id.pt);
b2 = (Button) findViewById(R.id.pd);
b3 = (Button) findViewById(R.id.sa);
t1 = (TextView) findViewById(R.id.t1);
t2 = (TextView) findViewById(R.id.t2);
calendar = Calendar.getInstance();
date = calendar.get(Calendar.DATE);
month = calendar.get(Calendar.MONTH);
year = calendar.get(Calendar.YEAR);
hour = calendar.get(Calendar.HOUR);
min = calendar.get(Calendar.MINUTE);
calendar.set(year, month, date);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TimePickerDialog.OnTimeSetListener onTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
t1.setText(i + " : " + i1);
}
};
TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, onTimeSetListener,
hour, min, false);
timePickerDialog.show();
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
t2.setText(i2 + "-" + (i1 + 1) + "-" + i);
}
};
DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, onDateSetListener,
year, month, date);
datePickerDialog.show();
}
});
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TimePickerDialog.OnTimeSetListener onTimeSetListener1 = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
Calendar cal = calendar.getInstance();
Calendar cal1 = (Calendar) cal.clone();
cal1.set(Calendar.HOUR_OF_DAY, i);
cal1.set(Calendar.MINUTE, i1);
cal1.set(Calendar.SECOND, 0);
cal1.set(Calendar.MILLISECOND, 0);
if (cal1.compareTo(cal) <= 0) {
cal1.add(Calendar.DATE, 1);
}
Long time = cal1.getTimeInMillis();
setAlarm(time);
}
};
TimePickerDialog timePickerDialog1 = new TimePickerDialog(MainActivity.this, onTimeSetListener1,
hour, min, false);
timePickerDialog1.show();
}
});}
public void setAlarm(Long targetcal){
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(MainActivity.this, MyReciever1.class);
intent.putExtra("key", targetcal);
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 9, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP ,targetcal, pendingIntent);
}
}
//MyReciever1
public class MyReciever1 extends AppCompatActivity {
Vibrator vibrator;
Button b1, b2;
Long cal2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_reciever1);
vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);
vibrator.vibrate(600000);
Intent intent1 = getIntent();
cal2 = intent1.getLongExtra("key",0);
b1= (Button)findViewById(R.id.stop);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vibrator.cancel();
finish();
}
});
b2 = (Button)findViewById(R.id.snooze);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MainActivity mainActivity = new MainActivity();
vibrator.cancel();
mainActivity.setAlarm(cal2+1000);
finish();
}
});
}
}
/我做了一个按钮,选取时间,一旦报警设置了另一个活动开辟了打盹按钮在android系统设置报警和停止按钮我停止工作,但在点击打盹应用程序崩溃/的Android闹钟应用
你有一些崩溃信息? –
E/AndroidRuntime:致命异常:主要 进程:practices.rajat.com.alarmdemo,PID:3006 java.lang.IllegalStateException:系统服务不可用于onCreate之前的活动() at android.app.Activity.getSystemService Activity.java:5035) at practices.rajat.com.alarmdemo.MainActivity.setAlarm(MainActivity.java:98) at practices.rajat.com.alarmdemo.MyReciever1 $ 2.onClick(MyReciever1.java:39) –
studio is显示此消息 –