마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

AlarmManager에서 날짜 설정하는법에 대해서 질문이 있어요 ㅠㅠ [closed]

0 추천
public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {

    TimePicker t;
    DatePicker d;
    Button b;
    SQLiteDatabase s;
    int bb;
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_main2);

        t = (TimePicker) findViewById(R.id.timePickerAlarmTime);
        d=(DatePicker)findViewById(R.id.datePicker);

        b = (Button) findViewById(R.id.btnAddAlarm);
        b.setOnClickListener(this);

        s = this.openOrCreateDatabase("alarm", MODE_MULTI_PROCESS, null);
        s.execSQL("create table IF NOT EXISTS alarm4(year TEXT, month TEXT, day TEXT, hour TEXT, minute TEXT, second TEXT, count TEXT, id TEXT)");

        Cursor c = s.rawQuery("select * from alarm4", null);

        bb = c.getCount()+1;

    }


    @RequiresApi(api = Build.VERSION_CODES.N)

    public void onClick(View v) {


        if(v.equals(b)) {
            Toast.makeText(this, "successfully set", Toast.LENGTH_LONG).show();

            int y=d.getYear();
            int month=d.getMonth()+1;
            int day=d.getDayOfMonth();
            int h = t.getHour();
            int m = t.getMinute();

            Calendar mcal = Calendar.getInstance();

            mcal.set(Calendar.DAY_OF_YEAR, y);
            mcal.set(Calendar.DAY_OF_MONTH, month-1);
            mcal.set(Calendar.DAY_OF_MONTH, day);
            mcal.set(Calendar.HOUR_OF_DAY, h);
            mcal.set(Calendar.MINUTE, m);
            mcal.set(Calendar.SECOND, 0);

            final int _id = (int) System.currentTimeMillis();

            s.execSQL("insert into alarm4 values('"+y+"','"+month+"','"+day+"','"+h+"','"+m+"','0','"+bb+"','"+_id+"')");

            Intent i = new Intent("com.example.user.test.ALARM_START");

            PendingIntent mp = PendingIntent.getBroadcast(this, _id, i, PendingIntent.FLAG_UPDATE_CURRENT);

            AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

            am.set(AlarmManager.RTC_WAKEUP,
                    mcal.getTimeInMillis(),
                    mp);

            Intent a=new Intent(getApplicationContext(), menu.class);
            startActivity(a);

        }

    }
}

 알람 어플을 만들어보고있는 초보인데요..

DatePicker와 TimePicker로 날짜와 시간을 설정해서 알람을 만들어 봤어요

시간 같은 부분은 아무 문제 없이 지정한 시간에 잘 작동하는데 년도와 달을 설정할때는 같게 설정하지 않으면 항상 알람이 바로 울리더라구요.. 근데 또 이상하게 일 같은경우에는 잘 작동하고..

혹시나 값이 잘못들어간건 아닌가 해서 데이터베이스에 넣어서 뽑아봤는데 정상적으로 들어가있더라구요

도대체 어느부분이 문제인가요.. ㅠㅠ 도와주세요

질문을 종료한 이유: 기간이 지나서
kisum (360 포인트) 님이 2017년 10월 18일 질문
kisum님이 2017년 11월 7일 closed
...