Будильник не работает должным образом - PullRequest
0 голосов
/ 25 мая 2018

Я пишу приложение для будильника Android
Я получаю время из базы данных sqlite и устанавливаю их в диспетчере будильников.
Оно работает, когда время истекло, но не работает в точное время.
Это мой код (это функция, которая выполняется в методе mainactivity onCreate ())

public void  fillListFromDb()
{

    SQLiteDatabase db = new HelpedDb().getReadableDatabase();

    Cursor getcityid = db.rawQuery("select * from defcity",null);
    String tmpcityid = "";
    if(getcityid!=null)
    {
        if(getcityid.moveToFirst())
        {
            tmpcityid = getcityid.getString(getcityid.getColumnIndex("defvalue"));
        }
    }
    getcityid.close();
    Cursor getCityName =db.rawQuery("select * from city where id="+tmpcityid,null);
    String cityName="";
    if(getCityName!=null)
    {
        if(getCityName.moveToFirst())
        {
            cityName=getCityName.getString(getCityName.getColumnIndex("cityname"));
        }
    }
    txtcityname = (TextView) findViewById(R.id.txtcityname);
    txtcityname.setText("("+cityName+")");
    getCityName.close();
    Cursor cursor = db.rawQuery("select * from dayoghat where cityid="+tmpcityid,null);

    Intent alarmIntent = new Intent(G.context,Alarm_reciver.class);
    pendingIntent = PendingIntent.getBroadcast(G.context,0,alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);
    Calendar calendar = Calendar.getInstance();
    while (cursor.moveToNext())
    {

        StructOghat oghatlist = new StructOghat();
        oghatlist.rooz = cursor.getString(cursor.getColumnIndex("rooz"));
        oghatlist.sahar = cursor.getString(cursor.getColumnIndex("sahar"));
        oghatlist.azan = cursor.getString(cursor.getColumnIndex("azan"));
        oghatlist.ramazan = cursor.getString(cursor.getColumnIndex("ramazan"));
        String currentazan = cursor.getString(cursor.getColumnIndex("azan"));
        String[] azantime = currentazan.split(":");
       int azanhour = Integer.parseInt(azantime[0]);
        int azanminute = Integer.parseInt(azantime[1]);

        calendar.set(Calendar.HOUR_OF_DAY,azanhour);
        calendar.set(Calendar.MINUTE,azanminute);
        calendar.set(Calendar.SECOND,0);


        Log.e("azan",azantime[0]);
        Log.e("azanminut",azantime[1]);
        alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);
        list.add(oghatlist);
    }
    adapter.notifyDataSetChanged();
}

}
...