在android中设置警报
我是android世界的新手,在尝试在提醒应用程序中使用报警时。当我设置时间和日期并按下“完成”按钮时,会出现一个对话框,其中显示以下消息:不幸的是,universalreminder已停止 当我按下finish按钮时将执行的java代码是在android中设置警报,android,alarmmanager,alarm,Android,Alarmmanager,Alarm,我是android世界的新手,在尝试在提醒应用程序中使用报警时。当我设置时间和日期并按下“完成”按钮时,会出现一个对话框,其中显示以下消息:不幸的是,universalreminder已停止 当我按下finish按钮时将执行的java代码是 finishBasic = (Button)findViewById(R.id.buttonforfinishinbirthdaybasic); finishBasic.setOnClickListener(new OnClickListen
finishBasic = (Button)findViewById(R.id.buttonforfinishinbirthdaybasic);
finishBasic.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
cal_birthdaybasic.set(yeartopass,monthtopass,daytopass,hourtopass,minutetopass,00);
Toast.makeText(getApplicationContext(), "asdsa", Toast.LENGTH_LONG).show();
setAlarm(cal_birthdaybasic);
Intent i = new Intent(Set_birthday_reminder.this,Newreminder.class);
startActivity(i);
}
});
我将带有时间和日期的日历变量cal_birthdaybasc传递给方法setAlarm
public void setAlarm(Calendar targetCal){
Toast.makeText(getApplicationContext(), "setAlarm is called", Toast.LENGTH_LONG).show();
Intent intent = new Intent(getBaseContext(),AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
}
广播接收机如下所示
public class AlarmReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
MediaPlayer mp = MediaPlayer.create(arg0, R.raw.gunshot);
mp.start();
Toast.makeText(arg0, "Alarm Received", Toast.LENGTH_LONG).show();
}
}
当我运行此代码时,catlog中出现的错误是
04-16 10:56:26.090: E/AndroidRuntime(1234): FATAL EXCEPTION: main
04-16 10:56:26.090: E/AndroidRuntime(1234): Process: com.universalremainder, PID: 1234
04-16 10:56:26.090: E/AndroidRuntime(1234): java.lang.NullPointerException
04-16 10:56:26.090: E/AndroidRuntime(1234): at com.universalremainder.Set_birthday_reminder$5.onClick(Set_birthday_reminder.java:108)
04-16 10:56:26.090: E/AndroidRuntime(1234): at android.view.View.performClick(View.java:4424)
04-16 10:56:26.090: E/AndroidRuntime(1234): at android.view.View$PerformClick.run(View.java:18383)
04-16 10:56:26.090: E/AndroidRuntime(1234): at android.os.Handler.handleCallback(Handler.java:733)
04-16 10:56:26.090: E/AndroidRuntime(1234): at android.os.Handler.dispatchMessage(Handler.java:95)
04-16 10:56:26.090: E/AndroidRuntime(1234): at android.os.Looper.loop(Looper.java:137)
04-16 10:56:26.090: E/AndroidRuntime(1234): at android.app.ActivityThread.main(ActivityThread.java:4998)
04-16 10:56:26.090: E/AndroidRuntime(1234): at java.lang.reflect.Method.invokeNative(Native Method)
04-16 10:56:26.090: E/AndroidRuntime(1234): at java.lang.reflect.Method.invoke(Method.java:515)
04-16 10:56:26.090: E/AndroidRuntime(1234): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
04-16 10:56:26.090: E/AndroidRuntime(1234): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
04-16 10:56:26.090: E/AndroidRuntime(1234): at dalvik.system.NativeStart.main(Native Method)
初始化cal_birthdaybasic,如下所示
cal_birthdaybasic = Calendar.getInstance();
然后使用
cal_birthdaybasic.set(yeartopass,monthtopass,daytopass,hourtopass,minutetopass,00);
Set_birthday_remement.java.cal_birthdaybasic.setyeartopass、monthtopass、daytopass、hourtopass、minutetopass、00中的108行是多少;您是否初始化了cal_birthdaybasic?没有,但是上面的语句是否为cal_birthdaybasic赋值?