بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ست کردن چندین الارم از دیتابیس
سلام
من اطلاعات سال ، ماه ، روز و ساعت و دقیقه رو جداگانه در یک جدول توی دیتابیسم دخیره می کنم که تو این حالت ممکنه چندین ردیف از تاریخ هر کدوم با یه ای دی بخصوص درش دخیره شده باشه
اطلاعات رو از دیتا بیس به این صورت دریافت می کنم:
private void setingalarmformdatabase() {
Cursor cursor = G.database.rawQuery("SELECT *FROM storage", null);
while (cursor.moveToNext()) {
year = cursor.getInt(cursor.getColumnIndex("storage_year"));
month = cursor.getInt(cursor.getColumnIndex("storage_month"));
day = cursor.getInt(cursor.getColumnIndex("storage_day"));
hour = cursor.getInt(cursor.getColumnIndex("storage_hour"));
min = cursor.getInt(cursor.getColumnIndex("storage_min"));
am_pm = cursor.getInt(cursor.getColumnIndex("storage_ampm"));
}
cursor.close();
}
الارم منجرم هم امادس که اگه بهش دیتا بدیم به خوبی کار می کنه اما چطورمی تونم کاری کنم که برای هر دریف از تاریخ که توی دیتا بیس هست یک الارم ساخته بشه؟
الارم منجرم هم به این صورت اطلاعات میگیره:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.AM_PM, am_pm);
calendar.set(Calendar.DAY_OF_MONTH, day);
calendar.set(Calendar.HOUR, hour);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, sec);
Intent intent = new Intent(G.context, ActivityAlarm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
G.alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
+1
0
کدهای پایین رو ببرید بالا در انتهای حلقه while قرار بدید. (11 سال پیش)
0
0
یعنی در اون صورت به ازای هر تاریخ یه الارم ساخته میشه؟؟ فک نمی کنم!
اگه اون جوری بنویسیم فقط برای اخرین تارخ که وارد شده یه الارم ساخته میشه (11 سال پیش)
0
0
یعنی در اون صورت به ازای هر تاریخ یه الارم ساخته میشه؟؟ فک نمی کنم!
اگه اون جوری بنویسیم فقط برای اخرین تارخ که وارد شده یه الارم ساخته میشه ولی امتحان می کنم ببینم چه میشه (11 سال پیش)
0
0
ُSpirit جان عمل می کنه برای هر تاریخ یه الارم ساخت ولی حالا تو این روش چجوری میشه روی الارم ها کنترل داشت؟
یعنی بخواییم یکیشو کنسل کنیم مثلا (11 سال پیش)
0
0
البته نه همون طور که فک می کردم شد. وقتی دو تاریخ جدید بهش اضافه می کنم فقط برای اخرین تاریخ الارم ست می کنه!!!!!!!!!! (11 سال پیش)
0
0
کلیتش اون طوری بود، باید برای هر آلارم یک id متفاوت داشته باشید تا بعداً بشه روش کنترل داشت، خب الان id صفر هست پس فقط همون آخری اعمال میشه. (11 سال پیش)
0
0
میدونی مشکل من دقیقا سر همین id هست. می خوام برای هر تاریخ با id همون تاریخ که توی دیتابیس هست یه الارم ساخته بشه ولی نمیدونم چطور از idهای دیتابیس استفاده کنم!! (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
m-developer
11 سال پیش
+1
0
من اومدم این کارو کردم:
private void setingalarmformdatabase() {
Cursor cursor = G.database.rawQuery("SELECT *FROM storage ", null);
while (cursor.moveToNext()) {
id = cursor.getInt(cursor.getColumnIndex("storage_id"));
year = cursor.getInt(cursor.getColumnIndex("storage_year"));
month = cursor.getInt(cursor.getColumnIndex("storage_month"));
day = cursor.getInt(cursor.getColumnIndex("storage_day"));
hour = cursor.getInt(cursor.getColumnIndex("storage_hour"));
min = cursor.getInt(cursor.getColumnIndex("storage_min"));
am_pm = cursor.getInt(cursor.getColumnIndex("storage_ampm"));
}
cursor.close();
}
private void setalarm() {
sec = 01;
setingalarmformdatabase();
month = month - 1;
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.AM_PM, am_pm);
calendar.set(Calendar.DAY_OF_MONTH, day);
calendar.set(Calendar.HOUR, hour);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, sec);
Intent intent = new Intent(G.context, ActivityAlarm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// برای پندیگ اینتنت ای دی اختصاص دادم که از دیتا بیس استخراج میشه
pendingIntent = PendingIntent.getActivity(G.context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
G.alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
الان به نسبت id های توی دیتابیس اتلارم به ساخته میشه اما چطور میشه تک تک رو هر کدوم از اون الارم های ساخته شده کنترل داشت؟
مثلا کنسل کرد
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .