رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

خواندن اطلاعات از دیتابیس و اعمال در Notification


پست های پیشنهاد شده

سلام خدمت همه عزیزان...

من تازه کار با اندروید رو شروع کردم و ممنون میشم راهنمایی کنید...

من یه دیتابیس برای اپ ساختم که توی اون میشه زمان رو ذخیره کرد و از یه ریسیور برای ساخت نوتیفیکشین به صورت ساده استفاده کردم...

حالا چجوری میشه اطلاعاتی که توی دیتابیس هست رو به صورت جداگانه دریافت کرد و بعد برای اعلام نوتیفیکشن اون رو قرار داد؟؟!!!!

ضمن اینکه اطلاعات رو با استفاده از SimpleCursorAdapter روی یک ListView اعمال کردم...

AlarmReveiver:

int id = intent.getIntExtra("timeId", 0);
        //Random random = new Random();

        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.drawable.ic_note_text_black_48dp)
                        .setContentTitle("Test")
                        .setContentText("This is a test notification");

        Intent notificationIntent = new Intent(context, MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
                0);
        builder.setContentIntent(contentIntent);
        builder.setAutoCancel(true);
        builder.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND);

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(id, builder.build());

 

در MainActivity:

Cursor c = dbManager.fetch();
        c.moveToFirst();
        int hour = c.getInt(c.getColumnIndex(DatabaseHelper.CLOCK_HOUR));
        int minute = c.getInt(c.getColumnIndex(DatabaseHelper.CLOCK_MINUTE));
        Calendar calendar = Calendar.getInstance();
        int curHour = calendar.get(Calendar.HOUR_OF_DAY);
        int curMinute = calendar.get(Calendar.MINUTE);

        int subHour = hour-curHour;
        int subMinute = minute-curMinute;
        Intent intent = new Intent(getContext().getApplicationContext(), AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext().getApplicationContext(), 0, intent, 0);
        AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + subHour*60*60*1000 + subMinute*60*1000, pendingIntent);

 

ممنون میشم راهنمایی کنید...

ویرایش شده توسط rexo
لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 8 دقیقه قبل، rexo گفته است :

سلام خدمت همه عزیزان...

من تازه کار با اندروید رو شروع کردم و ممنون میشم راهنمایی کنید...

من یه دیتابیس برای اپ ساختم که توی اون میشه زمان رو ذخیره کرد و از یه ریسیور برای ساخت نوتیفیکشین به صورت ساده استفاده کردم...

حالا چجوری میشه اطلاعاتی که توی دیتابیس هست رو به صورت جداگانه دریافت کرد و بعد برای اعلام نوتیفیکشن اون رو قرار داد؟؟!!!!

ضمن اینکه اطلاعات رو با استفاده از SimpleCursorAdapter روی یک ListView اعمال کردم...

AlarmReveiver:


int id = intent.getIntExtra("timeId", 0);
        //Random random = new Random();

        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.drawable.ic_note_text_black_48dp)
                        .setContentTitle("Test")
                        .setContentText("This is a test notification");

        Intent notificationIntent = new Intent(context, MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
                0);
        builder.setContentIntent(contentIntent);
        builder.setAutoCancel(true);
        builder.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND);

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(id, builder.build());

 

در MainActivity:


Cursor c = dbManager.fetch();
        c.moveToFirst();
        int hour = c.getInt(c.getColumnIndex(DatabaseHelper.CLOCK_HOUR));
        int minute = c.getInt(c.getColumnIndex(DatabaseHelper.CLOCK_MINUTE));
        Calendar calendar = Calendar.getInstance();
        int curHour = calendar.get(Calendar.HOUR_OF_DAY);
        int curMinute = calendar.get(Calendar.MINUTE);

        int subHour = hour-curHour;
        int subMinute = minute-curMinute;
        Intent intent = new Intent(getContext().getApplicationContext(), AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext().getApplicationContext(), 0, intent, 0);
        AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + subHour*60*60*1000 + subMinute*60*1000, pendingIntent);

 

ممنون میشم راهنمایی کنید...

 

برای تایمر باید با کلاس AlaramManager اینکار رو پیاده سازی کنید

https://stackoverflow.com/questions/4459058/alarm-manager-example

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 2 دقیقه قبل، Farzad Sarseifi گفته است :

 

برای تایمر باید با کلاس AlaramManager اینکار رو پیاده سازی کنید

https://stackoverflow.com/questions/4459058/alarm-manager-example

 

ممنونم از پاسخگویی سریعتون...

اطلاعات خیلی خوبی توی اون پست وجود داشت ولی مشکل من چیز دیگه ای هست...

فرض کنید که ما ده زمان متفاوت رو توی دیتابیس ذخیره کردیم، حالا مشکل من اینجاست که نمیدونم چجوری باید هرکدوم از اونها رو برای Notification  و یا توی AlarmManager ست کنم...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...