بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
کمک در مورد سرویس و الارم منیجر
سلام دوستان
من میخوام هر 10 ساعت یکبار دیتابیس sqlite که داخل برنامه دارم رو یکی از تیبل هاشو پاک کنم. یه فانشن نوشتم به اسم clearnews و همیخوام هر 10 ساعت یکبار صداش بزنم. الان چطوری باید با الارم منیجر اینو صدا بزنم؟ نیاز هست برادکست رسیور و سرویس هم استفاده بشه؟
لطفا یه توضیح یا یه کد بدهید.
چطوری باید یه نمونه از کلاس sqlite بسازم تو الارم منیجر تا فانشنشو صدا بزنم.
0
0
نمیتونید CurrentTimeMillis رو درون درون دیتابیس ذخیره کنید ؟ اونو بعنوان oldTime درنظر بگیرید و سپس وقتی برنامه اجرا میشه یا اگه درحال اجرا باشه ، CurrentTimeMillis الان رو بگیرید و مقدار oldTime رو ازش کم بکنید. اینطوری دستتون میاد آخرین باری که به برنامه اومده چند ساعت پیش بوده. (6 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
namdar79
6 سال پیش
+1
0
سلام
این متد رو فراخوانی کنید و مقدار تاخیر رو برای اجرای کد هاتون بدهید
//delay is after how much time(in millis) from current time you want to schedule the notification
public void scheduleNotification(Context context, long delay) {
Intent notificationIntent = new Intent(context, MyNotificationPublisher.class); notificationIntent.putExtra(MyNotificationPublisher.NOTIFICATION_ID, someData); // send some data with intent PendingIntent pendingIntent = PendingIntent.getBroadcast(context, notificationId, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); long futureInMillis = SystemClock.elapsedRealtime() + delay; AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent); }
در مرحله بعد باید یک Broadcast ایجاد کنید
public class MyNotificationPublisher extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
//Do some event
}
}
و در آخر هم Broadcast رو در مانیفست معرفی کنید
<receiver android:name=".Services.MyNotificationPublisher"/>
اگر سوال دیگری در این باره داشتید مبحث How to Schedule in Android رو جستجو کنید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .